Software Developer Interview Questions
Must Ask Software Developer Interview Questions

Hiring a software developer can be a difficult task to accomplish. Here at LightSky, we have made quite a few revisions to the interview process, and have settled on the following list of base questions that we ask when interviewing every job candidate. We’ve included a list of those questions below and give some guidance as to what we are looking for in answers. Feel free to use any of these in your interview process. I should note that these questions are often given during the first step of the interview process, usually done over the phone or via video chat. We do have a series of technical questions that we tailor to each applicant and position that we ask in a later interview. 

What are some techniques you use to ensure that there isn’t a breakdown in communication when interacting with a difficult client?

 I realize that for some software development companies, their developers are isolated from the clients, however for us, that isn’t the case. While we do have Project Managers, our developers are often on the call with clients and asked to explain technical concepts. For this answer, we are trying to ascertain the applicants underlying communication skills. Do they mention stepping back and trying to understand the client’s point of view? Do they have actionable steps to mitigate a communication breakdown? 

What is one area of software engineering that you wish you knew more about?

With this question, we are trying to get a better idea as to what the application sees as their own limitations. Often the answers will surprise us, but there isn’t a wrong answer, per se

A new hire is having trouble estimating time amounts on tickets. You are finding that their estimates are coming in low. How would you go about mentoring them to help them improve their estimates? What advice might you give?

We started asking this question in particular as we noticed that a lot of our developers had trouble accurately estimating tickets. They say that an excellent way to establish a thorough understanding of a topic is to teach it, so we present this question as a scenario to better gauge their understanding. As far as specific advice, it can often be helpful to break a ticket down into smaller tasks and estimate those versus a large bucket item.

With web technologies changing at such a rapid pace, what are some things that you do to stay ahead in the industry?

A software developer should aim to be continually learning. Does the applicant mention specific podcasts or blogs that they follow? Are there conferences that they enjoy? 

How do you evaluate if a particular framework/technology is a good fit for the client’s needs? 

When new technologies arise, it can often be pretty exciting to use those in a project. However, what we are looking for out of this question are caution and forethought. Does the applicant appear to balance the desire to implement new technology with the potential risk of doing so? Would this new technology fit well within the ecosystem of the project or organization? Does this new technology have a solid open source community behind it? Mentioning these things would indicate that you have an applicant who is balanced in their approach. 

What steps do you take to ensure that the code you release is as bug-free as possible? Do you consider yourself good at anticipating edge cases? If so, what steps do you take to account for those? If not, what could you do to improve?

There is no such thing as bug-free code. However, that is not an excuse for releasing poor code. A developer can do a lot of things to help mitigate the risk of releasing poor code into the wild. If the applicant discusses using best practices such as Test Driven Development and defensive programming techniques can be a positive sign.

How do you sell difficult concepts to clients when they are making a decision that you feel is not in their best interest?

There are going to be times when a developer presents something to the client that is in their best interest, but the client wants nothing to do with it. So long as our developers have done their due diligence in educating the client about the consequences of not following a particular piece of advice, then that is all we can do. For us, we are looking for an applicant to indicate that they would fight for their idea, but within the confines of professionalism and due diligence.

A client submitted a ticket indicating that, “Some users are reporting emails are not being sent. Please help!”. What questions might you ask the client? What are some of the reasons why their website may not be sending emails? How would you go about identifying which of the potential causes of the problem? 

For this answer, we are trying to get at the core of how the applicant thinks. There are many reasons why a server wouldn’t send an email. Is the mail server down? A DNS issue? An issue with the form on the website itself? Has the domain been blacklisted? The key here is that they can articulate a variety of problems that can manifest themselves as an email not being sent.

What steps do you take to prevent burnout?

Software burnout is a big problem in our industry. Does the applicant have specific techniques that they use to prevent burnout? This is also a great question to help you learn more about what they do outside of work to maintain a level of sanity.

I hope you found these questions helpful and can help you either as the interviewer or interviewee. Do you have any other questions that you find useful? Let us know some of your favorites, and we will gladly add them to this article. 

5 Must Have Drupal SEO Modules
5 Must Have Modules for Drupal SEO

I have been doing Drupal development for the last four years. During that time, one concern from potential clients has been that Drupal isn’t SEO friendly. While Drupal may not come ready for search engine optimization out of the box, with a few additional modules and some proper configuration, Drupal can be a successful SEO platform. Below are what I consider must have modules for Drupal SEO.

1. Pathauto
Pathauto works by creating automatic URL aliases based upon tokens that you set in the configuration. By default, Drupal’s URL structure looks similar to “/node/75” where 75 is the node id of the page. With Pathauto, your urls will transform into keyword rich URLS such as “blog/five-must-have-modules-drupal-search-engine-optimization”. Each URL pattern can be configured on a per-content type basis, and you can add alias patterns for your taxonomies as well as your users.

2. Global Redirect
The Global Redirect module works by automatically redirecting visitors from the node/xx URL to the aliased version of the URL. This is important as it prevents duplicate content penalties within Drupal. This module also allows you to add a canonical tag to your pages as well.

3. MetaTag
The Metatag module allows you the option of configuring metatags for your site at both the individual and global level. As of the time of this writing, the Metatag module has support for the following tags:

4. XML SiteMap
The XML SiteMap module create sitemaps that you can use to submit to Google, Bing and Yahoo’s Webmaster tools. You can indicate which content types you’d like to see included and indicate the priority of those content type pages on your site. The benefit of submitting an XML Sitemap is so that the search engines know about all of the pages on your site. Without it, they will only know about the pages found during their normal crawling process which sometimes misses pages.

5. SEO Checklist
The SEO Checklist module doesn’t add any functionality to your site directly, but it does serve as a reminder for SEO related tasks that still need to be completed. It separates items by category and allows you to check off items as they are completed. SEO checklist also saves a timestamp of each completed action so that other site administrators will know when items are completed. This module is updated frequently with the latest SEO techniques and helps ensure that you are maximizing SEO for your site.

LightSky recommends Drupal as a solution too many of our clients who want easy to use and maintain websites that are also flexible and secure. One of the great features of Drupal is that it is so easy to customize. Adding the above modules for SEO is an example of how Drupal can easily be adapted for our clients’ needs. What are some of your favorite modules for SEO in Drupal?

How to Create a Digital Content Strategy that Converts
How to Create a Digital Content Strategy that Converts

What is a Digital Content Strategy?

Your organization’s digital content strategy is a plan to help you determine how to write the content that you will create and distribute online. Many organizations, large and small, fail in this regard because they don’t have a plan in place for creating content that actually fulfills the main purpose that online content should fill…and that’s to increase your conversion rate.

Your conversion rate is the percentage of visitors that complete a specific objective such as fill out a form or purchase a product. All of the content you produce should be conversion oriented and aim to fulfill a particular objective (newsletter signup, brand awareness, etc).

Before you can begin writing your content for conversions, you must first understand who your target audience is.

Understanding your Target Audience

The biggest piece of advice I have for organizations out there who wish to improve the effectiveness of their digital content is to first make sure they have a solid understanding of who their target audience is. How do we do that? We create user personas.

Creating User Personas

A persona is a personality profile that you create for each of your target customers. A user persona can contain any, or all of, of the following information:

  • Name and Position (if applicable) – It’s always a good idea to give a name to the person you are targeting. If you are targeting a particular position within an organization be sure to list their title as well.
  • Education – The level of education the person has. This is useful for ensuring that you write for their education level.
  • Experience – How much experience on average does your persona have in their industry
  • Challenges – What are the things this persona struggles with the most?
  • Dislikes – What do they not like? i.e Salespeople, wasting time, etc
  • Likes – What type of things do they like? i.e Efficiency, streamlined processes, etc
  • Influences – Who does this persona influence?
  • Goals – What are the things that you could help them solve?
  • Skills – What skills does this persona have?

There isn’t a requirement that you include all of those details in your user personas, but I do feel as though the more information you include the better you are able to tailor your content to your audience.

Feel free to create as many user personas as you feel is needed. You can create them in a Word/Google document or you can use a tool to help you. For our product, BlueSky Meeting (a board meeting tool), we use Aha.io to help create our user personas as we like the interface and the ease of editing that it provides. You can see an example of one of the user personas that we use for BlueSky below. One of our target customer profiles are superintendents and below is our persona that represents that.

User Persona Example

As you can see we include a lot of details about “Frank”. What his goals are, what he likes and dislikes and even who he trusts information from. We have six different user personas for the various types of customers that use BlueSky and I would encourage you to create as many as you feel are needed to accurately capture the variety of your customer base.

Identifying Pain Points and How You Fit In

Once you have an idea as to who your user personas are, you can begin to nail down what their pain points are, and how your organization or product can help solve them. You will want to do this for each user persona that you created. Each persona is likely to have different pain points and it’s important that you think about that as you start to plan out your content. Using Frank as an example we have identified a few pain points for him:

  • The board is running less efficient due to the need to print and distribute agenda updates
  • The public is not as involved in the process as they would like them to be
  • Complying with regulatory requirements can be difficult and time-consuming

Once you have the pain points figured out, the next step is to write down how your organization or product can help solve those. Creating content about your personas pain points and how they can help solve them goes a long way towards establishing trust in your brand which inevitably leads to them considering you as a potential solution to those problems.

The Sales Cycle

As you start to think about creating content for your user personas, it’s important to remember about the sales cycle.

Sales LifeCycle

(Image courtesy of toprankblog.com)

Everyone that comes to your website or engages in any of your digital content will likely be at a different point in the sales cycle. Understanding where they might fall in that process is an important step to creating content. There is a big difference in the types of content that you create for users in the qualification phase versus users in the education phase of the buying cycle. Let’s look at an example. Let’s say that your organization sold window air conditioner units. Someone in the awareness phase of the sales cycle might want to know more about the differences between a window unit and a standalone unit. Someone in the consideration phase of the buying cycle may be more interested in a comparison between different units and brands. Each phase of the buying cycle has different types of content that the visitor will find useful. It’s important that you create content for each step in the process.

Creating Strategic Content

With a deep understanding of your target audience, their pain points and what you bring to the table, the next step is to start to brainstorm the types of content that you wish to create. There are three rules that each piece of content should follow

Quality over Quantity

Every piece of content that you create should be as good as you can make it. There is a belief that if you have a blog on your website that you should publish content frequently. The truth is that in order to have success in your content strategy, your content needs to be of very high quality. That’s not to say that it has to be perfect (it never is), but your focus should be on content that provides value to the user. If you try to immediately hit the user with “sales speak” and then expect that user to convert, then you will be disappointed. Help the user. Answer their questions. Identify solutions for their pain points. If one of those happens to be your organization, all the better, but understand that you are trying to build a relationship. If a salesperson called you and the first thing out of their mouth was “Hey sign up for our trial!”, you’d likely end that call. However, if they called and were respectful of your time, offered solutions to your problems and made you feel that you actually cared about them, then they might get somewhere. That same approach applies to your content. Be respectful of their time and genuinely aim to help them.

Call to Actions

Every piece of content that you write should have a call to action in it. This is how you convert your visitors into leads. The types of call to actions can, and should, vary depending upon the content itself.

As an example, you are reading this article because you are seeking information on creating your digital content strategy. We at LightSky provide consulting services and have helped many clients do this exact thing. If you need assistance creating a content strategy for your organization, we can help.

See that? That’s a call to action. It’s not in your face, it doesn’t take away from the value of the article and it’s not overbearing. For some types of content, a direct request to do business like that may work. For others, you may determine that capturing the lead in other ways may be more beneficial. I could have very easily encouraged you to sign up for our newsletter where we provide other tips similar to what you found in this article. After all, you came to this article to help formulate a content strategy, so it only makes sense that pushing you towards other content similar in nature would be beneficial to you. Again, it’s all about relationship building and you want to capture the visitor so that you have the chance to nurture that relationship.

SEO and Searcher Intent

You can create some amazing content, but it does you no good if no one sees it. I could write an entire book on writing content geared around SEO and searcher intent. Ahrefs put out an article recently that tackled this subject in depth. I would encourage everyone in charge of creating content to take some time to read it.

Types of Content

So what types of content should you create? That is up to you. There isn’t a hard and fast rule, but each type of content fulfills different objectives.

Blog Posts

Blog posts are a great way to create content that is beneficial to your target audience. From an SEO perspective, longer content works better. In fact, Ahrefs analyzed over two million keywords in their “On-Page SEO: An Actionable Guide” and found that content with 600+ words tended to rank better than shorter content.

Ideal Content Length

This makes sense. Longer content is typically more in-depth and that provides a better value to the person reading it. Noticing a pattern yet? Value is king.

If you are going to cover a topic in-depth, I would highly suggest that you break up your article into different sections and use images as appropriate. Even using different subheadings (H2, H3, H4, etc) can be useful to prevent an article from becoming a large wall of text.

Video

87% of content marketers create video content and that’s because it is effective. So what can you do to make your videos stand out from your competition?

  • Use Catchy Titles – Creating catchy titles will draw your visitors in
  • Professional Quality – If you are going to create the videos yourself make sure that you are using quality equipment and edit the videos in a way that gives them a professional appearance
  • Thumbnails – Your video thumbnail is the first thing people see when they see your video in the search results. Ensure that it is catchy, similar to the title and make sure that you upload a specific one rather than letting your video distribution platform (i.e YouTube) choose it for you.

Infographics

Infographics are an awesome way to present certain content, especially content that is data-driven in nature. As with all your content, quality is key. Make sure your infographics stand out and are easy to read. If you are not a graphic designer by trade, you can create infographics using a variety of online tools such as Vennage or PiktoChart.

Landing Pages

Example Landing Page

An example landing page from Pantheon.

A landing page is a page geared around converting a user. Landing pages should be used anytime you are running any sort of marketing or pay per click advertising. Their design is done in such a way to really funnel the user into the converting action. It’s important that you keep in mind that if a visitor fills out the form on your landing page that they get something in value in return. As an example, If you are a real estate agent and you are targeting homeowners who might be looking to sell, you could offer a free home value report. The customer gets information that is useful to them, and you get a lead.

Similar to the mention of SEO, creating landing pages that convert could be a book in and of itself. If you are interested in optimizing your landing pages, this guide can help (and it’s a great read).

Publishing Frequency and Content Calendars

As you are developing your content strategy you may be wondering how often you should publish content? Well, the answer is as often as you can so long as you don’t sacrifice quality. I’d rather you put out four good articles per year than 20 mediocre ones.

However, it is important that you try to be consistent in terms of how frequently you publish content. This is most important when doing a video series, podcasts or social media content. A content calendar can help you stay on track. Hootsuite has a great article on creating content calendars that will help you start down that path.

Syndication and Content Distribution

Another thing to consider when developing your digital content strategy is how you plan on distributing your content. As I mentioned earlier, writing the world’s greatest article does you no good if no one sees it. So what options do you have when it comes to content distribution?

Niche-Specific Sites or Aggregators

Almost every niche has a place on the internet where its members congregate. Whether that be forums, subreddits or Facebook/LinkedIn groups. Provided that the rules of that particular site allow it, these are great places to post links to your content.

Search Engine Optimization

Search Engine Optimization is a great way to distribute your content. However, it’s not a set it and forget it type of approach. You have to ensure that you are writing content that converts, is searched for and fulfills searcher intent. Additionally, there are both the on-site technical aspects to SEO and the off-site aspects of it that can make it a challenge. That being said, it’s worth investing in as good SEO practices, combined with high-quality content can do a lot to bring in leads to your organization.

Pay-Per-Click Advertising

Pay-Per-Click (PPC) advertising can be a great way to distribute your content and help get it out to the masses. With a well-structured campaign, you can often do this with success and ensure that you aren’t breaking the bank.

Tracking Success and Final Thoughts

The final piece of the content strategy puzzle is tracking. It’s very important that you track if the content you are creating is having the effect you expect. Is your conversion rate where you would expect it to be? Is the time on page value high enough that would indicate your users are reading your content or are they getting to your page and then clicking the back button. Using free tools such as Google Analytics or Heap.io can help give you the data needed to help make those determinations.

Most importantly, remember that a good piece of content is always evolving. Make sure that you are occasionally giving a refresh to old articles and content that you write to help keep it relevant. Reach out to your customers and ask them what types of content they would like you to create and always remember that good content provides value to those that consume it, and it’s that value that converts them into customers.

Web Application vs Website
Web Applications vs Websites: Understanding the Difference

If you are a bit confused as to the difference between a website and a web application, fear not. You are not the only one. In fact, many of our clients ask us that very question. It’s not always an easy one to answer, but let’s try to break down their differences.

What is a Web Application?

The actual definition of a web application is a bit ambiguous. Still, one way that I encourage clients to think about it is to think of a web application as equivalent to the software you’d use on your PC or an app on your mobile device. A web application is built on the same fundamental technologies that power most websites, but the difference lies in their purpose and complexity.

Whereas a website is meant to present some sort of information, a web application is designed to solve a specific objective. So if you were the owner of a small restaurant in town and you approached me and asked me to build you something that would represent your business, I would consider that a website (as I’m sure most would). However, if you asked me to build you an online ordering system that integrated with your internal fulfillment processes, that would be more of a web application.

So why the confusion?

Often this can get a little confusing as websites are getting more sophisticated and go often go beyond serving up information. It’s not uncommon for a client to ask us to build a brochure-type website with a bit of “custom” functionality that does a specific thing, such as adding a dealer locator or even some basic e-commerce functionality. This type of workflow automation has the potential to save organizations money and increase their return on investment. That said, at the end of the day, I would still consider that a website as its original purpose is to serve up information.

Web Application Examples

Clear as mud? If you are still a little confused as to the difference between the two, maybe it would be helpful to look at a few examples:

Your Bank – The main landing page you arrive on once you type in their URL would be their website. However, once you login to their online banking system, that would be a web application.

Facebook/Twitter/Etc – Almost every social media platform out there could be considered a web application because they solve a specific purpose — to connect people together.

Google – You could consider Google both a website AND a web application.

At the end of the day, that is the point. There isn’t a significant difference between the two terms and can, and often are, used interchangeably. That ambiguity can be confusing, but thinking in terms of complexity and purpose can go a long way towards clarifying the differences between the two.

NavBar in Drupal
NavBar – The Next Step in Drupal Navigation

So I am not kidding NavBar is literally the next step in Drupal navigation, it is being used in core for Drupal 8.  This is great news because not only does it mean that the Drupal 8 core will contain some much needed improvements to the administration navigation scheme.  Back end user improvements like this are perhaps the thing that makes me most excited about what Drupal 8 is bringing to the table.  Lets look a little bit at NavBar.

What You Get

Drupal's Navbar ModulePretty simply put NavBar gets you a responsive administration toolbar for your Drupal users.  It really isn’t going to do anything for what your visitors see, but your content creators, site administrators, and even site builders will see this as a much welcomed change.  NavBar is first and foremost completely responsive, and for those of you who use the traditional Drupal administration toolbar on your mobile phone oh boy are you excited.  The standard Drupal 7 install, not to mention Drupal 6, doesn’t offer the most mobile friendly administrative experience.  NavBar helps resolve this.  NavBar also offers a more flexible navigation option.  You are able to use NavBar at the top of your site above the header, or as a sidebar on the left hand side.  The customization of the tool, really helps set it apart.

Not only is the mobile experience improved, but there is a much cleaner and professional looking image presented than the Drupal 7 administration menu.  Though this might not seem like much, for those of us who build Drupal sites for clients this is a big deal.  Image is everything, and it is tough to sell Drupal’s out of the box usability against WordPresses out of the box usability.  We have a lot of admin usability improvements in our standard Drupal installation to help combat this, but now NavBar is another one.  Users almost expect clean and friendly design, and now they can get it.

Installation

I am not going to lie, NavBar in its current state is a bit of installation work, but most people should be able to figure it out if they have a little understanding for how Drupal is structured.

The first step for me is downloading and installing the project. I think that drush is the best tool for installing and enabling projects like this, but particularly for NavBar I suggest installing the project before moving to some of the other steps.  The reason is that once the project is installed and enabled it will put some indicators on your /admin/reports/status page that can really help you troubleshoot in the next steps.

Once the NavBar module is enabled, you can visit the site’s status report using the path above and notice that there are a three statuses now associated with NavBar, and this is where the fun comes in.  NavBar requires the installation of three libraries (Modernizr, Backbone, and Underscore), and you may have them already installed, or at least some of them.  Using the status page at this point will help you find out if you have them already installed and ready to run, or whether you need to install them.
If you find that you need to install them, the process isn’t all that complicated, there are some helpful guides on the project page that will point you in the right direction.  Or give us a shout we would be happy to help.  Essentially it is a matter of downloading the libraries, or cloning their respective repositories, and moving them to your libraries folder in the Drupal installation.  The Modernizr library requires you to follow a link and download a specific minimized version of the library but there are specific instructions to follow on the project page to help guide you here, so I won’t reinvent the wheel here.  The instructions are pretty thorough, and relatively simple.

Once you have the libraries installed you can disable your regular administration toolbar and you are off and running.  If you follow those steps and still aren’t having any luck, the site status report is the best place to look.  Most likely it is an error with the libraries that were installed, and that report will point you to which library is causing trouble, and maybe even what the problem is.

We have fallen in love with NavBar, and it has started making a huge impact on our clients and how well they like using Drupal.  We highly suggest you use it.

Improving Drupal Usability
14 Modules for Improving Drupal Usability

Often times, Drupal gets a bad rap for usability. That’s because out of the box Drupal isn’t very user friendly. As with everything Drupal, it requires a few contributed modules in order to really make it shine. Below are a list of fourteen modules that you can add to your Drupal site to increase its usability. Let’s begin!

Views Bulk Operations – VBO is a module that allows you to execute bulk actions on views rows. The actions it comes with are pretty standard, but you can extend it using the Rules module or even roll your own if that’s your thing. This module allows for your site admins to be able to do things like mass delete nodes, mass publish/unpublish nodes, or even mass change the nodes author.

Admin Views – Admin Views is a module that replaces the stock administration screens with views. Why is this neat? You can add additional exposed filters to your users administration screens, or change which columns appear in order to help your site admins easily find the information they are looking for.

Draggable Views – Draggable Views is a module that allows your rows in a view to be reordered using the same javascript implementation that you find scattered about the Drupal admin (blocks, menu, etc).

Module Filter – Module Filter is a module that seeks to garner control over the unwieldy module listing page. It does this by adding a tab on the left hand side for each package, as well as one for showing the modules alphabetically. It also adds a textbox that you can search to quickly filter the module listing.

Autocomplete Deluxe – The Autocomplete Deluxe module replaces the default autocomplete element with the jQuery UI version making it much more user friendly than the default implementation.

Pathologic – The Pathologic module is an input filter which fixes image and link paths that would otherwise cause them to break. This is useful in situations where your site admins have content on both staging and live sites. Gone are the days of the live site pointing to the test site by accident or vice versa.

Custom Contextual Links – Contextual links was one of the features that our D6 -> D7 clients really seemed to love. One great usability improvement that you can make is to add a contextual link to a view (for example) that would allow them to quickly add the piece of content that corresponds to that view. Normally you’d add these custom contextual links through a set of hooks, but this module provides a nice UI to make it simple.

Conditional Fields – The Conditional Fields module allows you to create fields that are dependent upon one another in order to be shown. One example of this would be to show a textarea of an admin (or user) selected “Other”. I added this module because it can be go a long way towards cleaning up administration screens when adding content types with lots of information.

Linkit – The Linkit module replaces the default CKEditor link icon with an autocomplete field that allows admins to easily drill down to the content they are looking to link to.

Edit – Drupal 8 will ship with inline editing, and if you are too excited to wait, check out the Edit module. Edit module allows you to do just that, edit content in place. Note that you’ll need to use the CKEditor WYSIWYG if you want this to work on WYSIWYG fields.

Select2 – Like the autocomplete deluxe module above, the Select2 module replaces the standard select box with one that supports searching, remote data sets and infinite scrolling of results.

References Dialog – The References Dialog replaces all the standard reference fields with a dialog that allows them to add, edit and search for references. This can go a long way towards simplifying the administration workflow.

Content Menu – The Content Menu module adds the ability for administrators to be able to create pieces of content straight from the menu administration pages. When creating a piece of content, you have the ability to add a menu item, so it only makes sense that you can add a piece a content when adding a menu item.

Navbar – The Navbar module adds a mobile friendly navigation bar to the administration section of your website replacing the default toolbar which is non-responsive.

There you go. Fourteen modules to improve the authoring experience of your Drupal site. What do you think of the list? Are there any modules you would like to see added? Feel free to discuss in the comments below.