How Startups Can Beat Big Companies for the Best Talent

You think you’ve found your perfect hire. She’s uber-talented, has an awesome personality, and seems genuinely passionate about your startup’s mission.
[author_more]
At the end of a great interview, you ask casually, “So, who else are you considering?”
She responds, “Google, Airbnb, Facebook, and Slack.”
Well, you think, it was fun getting to know her.
But not so fast. Even if you’re competing against the likes of Google and Facebook, you can still win the best talent. After all, you can offer something these major organizations can’t: a highly personalized candidate experience that will give people a true sense of your culture and team.
Step 1: Write a Kick-A** Job Description
Most job descriptions are boring, generic, and long. That actually plays in your favor: if you write an exciting, engaging one, it’ll easily stand out.
Before you write a single word, you’ll need to swap mindsets. You’re probably thinking, “How can this hire add to my company?” However, the candidate is coming at it from the opposite angle: “How can this company drive my success?”
Write the job description in response to that question. Instead of saying, “This person will do X, Y, and Z to help us accomplish A, B, and C,” you’d say something along the lines of, “This person will own projects X, Y, and Z, giving them the chance to accomplish A, B, and C.” It’s a fairly subtle shift, but it makes a huge difference.
Timely has done a good job making its job description about the candidate, rather than the employer:

In addition, make sure your job description is not a wishlist. Companies often throw way too many required and preferred qualifications into their job descriptions in the hopes that they’ll get someone who meets, say, 75% of the criteria.
However, many people (especially women) don’t apply unless they’re 100% qualified—so unless you want to dramatically shrink your application pool (and miss out on some great fits), try to include only your deal-breakers.
Step 2: Don’t Leave Your Applicants Hanging
It’s easy to forget when you’re on the other side of the table, but looking for a job is insanely stressful. So, anything you do to put your applicants at ease will improve their experience.
Writing a cheery message acknowledging you got their application is one of the simplest ways to calm their nerves. Let them know when they should expect a follow-up (and don’t commit to a deadline you can’t meet).
For example, you could write:
Hey (name),
Thanks so much for applying to the (job title) role—we’re pumped to review your application! We spend a lot of time looking at each one we get, which means you probably won’t hear from us for a week or two. But we promise you will hear back: we respond to everyone.
Sincerely,
(Your name) and the rest of the (company) folks
This email will immediately distinguish your company from the ones who send stuffy, automated emails—not to mention the companies who don’t send emails at all.
Step 3: Give Your Candidates Options
Once you’ve identified the candidates you’re interested in, the next step is typically setting up a short phone or video screening. Many companies will tell the candidate, “Congratulations! We want to move forward with your application. Are you available for a phone call on Friday at 10 A.M.?”
However, you can win major points by being a bit more flexible, like so:
Hi (name),
Woohoo, we loved reading your application and learning about (your passion for UI, your experience with virtual reality, your former role as a consultant). Are you free on Friday at 10 A.M.? If not, what about Monday between noon and 2 P.M., or anytime on Tuesday? Let us know—we can’t wait to (virtually) meet you!
(Your name)
Not only do you provide a couple of options (which is huge for many candidates, who feel pressured to accept whatever time the hiring manager suggests), but in the first line, you prove you actually read their cover letter. This small detail has a disproportionately large impact on your applicant’s impression of you.
Also, if you can, opt for a video call. Studies show that first impressions tend to be far worse when you can’t see someone’s face.
Step 4: Make Interviews Feel Fluid and Fun
Every time you run an interview, your number one goal should be creating a conversation. Ideally, candidates will feel relatively relaxed and open—the exact opposite of the standard “interview” mode. You’ll get more honest answers; plus, you’ll create a genuine connection with the applicant.
So, how do you make interviewees feel at ease? By avoiding all the standard questions: what’s your biggest weakness, why do you want this job, what makes you a good fit for our company, and so on.
Instead, try to introduce questions as naturally as possible, as though you’re speaking with a friend. For example, if you’re looking for a marketing manager, you might ask, “When you notice an email campaign is performing worse than average, where do you typically begin? Sometimes I struggle to isolate which element I should focus on first.”
By adding that personal detail to the end, you’d show them it’s okay to be a little vulnerable—and that this is a discussion between equals.
You should give candidates the opportunity to discuss what they’re passionate about, as well. Talking about what they love always puts people in a good mood (and bonus, you’ll get valuable insights into their personality.)
Try saying, “On a typical Saturday afternoon, what are you probably doing? I’ll go first: I actually collect old radios, so I’m usually at a flea market or random antique shop.”
Again, notice how adding just one sentence about you makes the interaction feel more genuine and laid-back.
Step 5: Assign Meaningful Test Projects
You should always ask people to complete a test project (also called a skills assessment, sample test, or trial project). There’s no better way to gauge the quality of their work, how their process works, and whether or not they can do well under pressure.
Continue reading %How Startups Can Beat Big Companies for the Best Talent%

via Reme Le Hane

Alternative Ways of Triggering Events in WordPress

In the first part of this series on the WordPress hook system, we learned about the WordPress hook system and the two types of hooks actions and filters alongside some code examples of how they work.
In this second part of this series, we’ll be learning about alternative ways of triggering events in WordPress and how to hook static and non-static class methods to actions and filters.

In the previous article, I made the following statement:
At various stages of WordPress execution, a large number of events are triggered commonly using the do_actions() and apply_filters() PHP functions. These events can be subscribed or hooked to via add_action() and add_filter().
Take note of my use of the word “commonly”. There are other ways events can be triggered. We’ll explore that in the second part of this tutorial.
The other ways events can be triggered are via do_action_ref_array() function for action hooks and apply_filters_ref_array() for filter hooks.
Both do_action(), do_action_ref_array() and apply_filters(), apply_filters_ref_array() are the same in that each pair are used to execute functions hooked to specific action and filter respectively. The difference is in how they specify their argument.
Continue reading %Alternative Ways of Triggering Events in WordPress%

via Reme Le Hane

Getting Started with Microsoft Band SDK

On October 2014, Microsoft released the “Microsoft Band” — a smartwatch/fitness band. The reception to it surprised even Microsoft who, after preparing a limited amount of devices, found that the demand far exceeded supply. Not long after, they released the Band SDK, allowing developers to target the Band and provide applications to accompany the Band or extend its experience. A year after its initial release, the Band 2 was released improving several aspects of the device and brandishing a new sleeker, curved design.
The Microsoft Band 2 (Image Credit: Microsoft)
The Band is filled with sensors that focus on usage in fitness and sporting activities — but it can also be used as a sleep tracker and a smartwatch that displays notifications from a paired phone and/or from social networks such as Facebook and Twitter.
Band SDK Features
Before we dive into the features of the SDK, it is vital to understand that any user/SDK code will not be running on the Band itself (it is similar to the model used by the Apple Watch) but on a device paired with the Band.
The device can run any platform supported by the Band SDK — iOS, Android and Windows (including both Windows 10 and Windows 8.1 applications).
However, when you harness the SDK it will provide you with rich functionality including accessing its sensor data, providing custom UI shown on the Band (known as “tiles” and “tiles content”), and sending notifications to the Band.
The features offered by the Microsoft Band SDK are as follows:
Multi-platform support
Sensor data subscriptions
Tile creation and management
Tile notifications
Custom layouts
Haptic notifications
Band theme personalization
Band Sensors
As we mentioned earlier, the Band is packed with sensors. Here is the complete sensor list provided by either the Band/Band 2:
Accelerometer — Measures accelerations on the X, Y, Z axes.
Gyroscope — Measures angular velocity.
Distance — Measures distance in centimetres, and also provide current speed.
Heart Rate — Measures the wearer’s beats per minute.
Pedometer — Measures steps since the Band last factory reset.
Skin Temperature — Measures the skin temperature of the wearer in degrees Celsius.
UV — Measures the current ultraviolet radiation exposure intensity.
Calories — Measures the total number of calories the wearer has burned.
Galvanic Skin Response* — Provides the wearer’s skin resistance.
RR Interval* — Provides the interval between the last two continuous heart beats.
Ambient Light* — Provides the current room light intensity.
Barometer* — Provides the current raw air pressure.
Altimeter* — Provides the current elevation.
* Microsoft Band 2 only.
More information can be found on the Microsoft Band Sensors page.
In this article, we will look at how we can read sensor data using all three major platforms — iOS, Android and Windows. First, we need to setup our applications to use the SDK.
Download the SDK relevant to the platform of choice at the Microsoft Band platform page. If you aim to create a UWP (Universal Windows Platform) application, you may use Nuget to download and install the SDK into our application via the Microsoft Band nuget package.
Let’s start with iOS.
iOS – Setting up the Band SDK Environment
Currently, the Band SDK is supported on iOS 7 and above. Support for the iOS Simulator is not available, so we will need to test out our application on a real device paired with the Band.
If we would like our application to keep communication with the Band while it is on in the background, we need to enable “Use Bluetooth LE accessories” in background mode. For the sake of this tutorial, it won’t be necessary.
Launch Xcode (version 6.0 and above) and create a new single page iPhone application. This article will be using Objective-C, but it is fairly simple to translate the example code into Swift.
First things first, we need to add the Band SDK into our project. In the project navigator, right click on our project name and select “Add Files…”.
Locate and select the MicrosoftBandKit framework file (from where you’ve downloaded and extracted the SDK file) and select the option to “Copy items if needed”.
Select “Build Phases” under the project target. And add CoreBluetooth.framework under “Linking Binary with Libraries”.
Now, we are ready to start coding.
iOS — Connecting to a Band Device
Navigate to the ViewController.m file. Add an import statement in order to have access to the Micorsoft Band SDK.
#import <MicrosoftBandKit_iOS/MicrosoftBandKit_iOS.h>

Let us add a delegate to the ViewController definition. Via this delegate, we will get callbacks when we manage to successfully connect or disconnect from the device.
Add the following callbacks inside the implementation section of the ViewController:
@interface ViewController () <MSBClientManagerDelegate>
….
@implementation ViewController

-(void)clientManager:(MSBClientManager *)cm
clientDidConnect:(MSBClient *)client
// handle connected event

-(void)clientManager:(MSBClientManager *)cm
clientDidDisconnect:(MSBClient *)client
// handle disconnected event

-(void)clientManager:(MSBClientManager *)cm client:(MSBClient *)client
didFailToConnectWithError:(NSError *)error
// handle failure event

Later on, we will try to connect with a Band device, we will store this instance in a property so we will be able to access it from various methods.
@interface ViewController () <MSBClientManagerDelegate>
@property (nonatomic, weak) MSBClient *client;
@end

This tutorial assumes that you, the reader, is fluent enough with iOS development and creating a simple UI with buttons and labels is well within your grasp. To keep this tutorial as simple as possible, we will not get into details on how to create the user interface and hook it up with instances and actions on the ViewController side. Now add a button and hook it to an action named init.
MSBClientManager is a singleton which will provide us access to the SDK functionality. Later on, we will use an instance of a device client to access sensors, tiles and the rest of the SDK features. In this method, we will try to gain that instance.
As promised, we are setting up our ViewController for notifications via the delegate when calling setDelegate.
Then we are accessing the attachedClients collection. This will provide us with a list of all Band devices paired with the device running this app. (Yes, there can be multiple Bands connected to a single device!). Your code can have heuristics/UI to decide which Band to connect to, in this tutorial we will just grab the first one.
Lastly, we are initiating a call to try and connect to this device by calling connectClient and passing the Band’s client instance.
– (IBAction)init:(id)sender
[[MSBClientManager sharedManager] setDelegate:self];
NSArray *attachedClients = [[MSBClientManager sharedManager]
attachedClients];
self.client = [attachedClients firstObject];
if (self.client)
[[MSBClientManager sharedManager] connectClient:self.client];

iOS – Accessing a Sensor
Assuming all went well, and we’ve managed to connect to a Band, we can now proceed to gain access to a sensor’s data feed. However, some sensors require explicit user consent. Currently, only the heart rate and RR Interval sensors require consent, but this could be changed without warning. It is best practice to check for consent whenever you require access to a sensor.
Once again, I assume you have another button in your View to be able to call the following method.
First, we are checking whether we have user consent for the sensor in question. As we have mentioned above, since that in this specific example, we are asking for access to the Heart Rate sensor, we will most likely receive MSBUserConsentNotSpecified. We will need to call requestHRUserConsentWithCompletion. A dialog will popup out on the device where the user will be able to approve our app’s access to their heart rate.
The consent dialog on iOS
Consecutive call to this method should now give us a MSBUserConsentGranted or MSBUserConsentDeclined. For the sake of this tutorial, let’s assume that the optimistic scenario has happened and the user has agreed. We can now call the method startHeartRateUpdates which we will describe soon.
– (IBAction)getSensor:(id)sender
MSBUserConsent consent = [self.client.sensorManager
heartRateUserConsent];
switch (consent)
case MSBUserConsentGranted:
// user has granted access
[self startHeartRateUpdates];
break;
case MSBUserConsentNotSpecified:
// request user consent
[self.client.sensorManager
requestHRUserConsentWithCompletion:
^(BOOL userConsent, NSError *error)
if (userConsent)
// user granted access

else
// user declined access

];
break;
case MSBUserConsentDeclined:
// user has declined access
break;
default:
break;

Continue reading %Getting Started with Microsoft Band SDK%

via Reme Le Hane

The 5 Best Slack Apps to Accelerate Your Design Process

Collaboration is the cornerstone of design and rapid feedback accelerates the product development cycle. Whether working in-house or remotely, Slack recreates the experience of sitting next to the people whose input matters most, which speeds things up in a valuable way.

The Slack App Directory for Designers. />

At my office, we set up a private design channel, where the design team can share unrefined work, free of destructive judgment. This is a great way to nudge the boulder up the hill when a designer hits an impasse.

Building on this natural instinct to seek rapid feedback, Slack has authorized a handful of app integrations for designers on their budding platform.

A New Platform

There’s a buzz around these apps and I want to figure out why. First, let’s take a look at what Slack apps are – why they exist – and then I’ll recommend some to check out.

Branded as the Slack Platform Launch, Slack introduced app integrations late last year. The initial reaction was mixed because it’s not all that groundbreaking. In some ways, it could be interpreted as a regression, “Wait we’re taking web-based applications and restricting them to what is essentially IRC with a paint job?”

If you’re able to move past that initial skepticism, you can appreciate the simplicity and ease with which each app substantiates business conversations with data. Engineering managers, for example, love having every pull-request and branch fed into a Slack channel by the GitHub Slack app.

Combine that with sales numbers through a Salesforce integration, and analytics from a custom Looker or Mixpanel integration, and you get an immediate holistic snapshot of your organization’s health. Slack apps provide insight into what’s happening, in real-time, with commentary from the people that make it happen. Powerful stuff.

Slack Apps For Designers

Now that we’ve covered the value prop of Slack apps, let’s dive into some examples that can improve your design workflow. As of May 2016, there are 18 design apps in the Slack app directory. The way I see it, they break down into three major categories: project management, real-time collaboration, and project resources.

Project Management

The major draw and buzz around Slack design integrations are platforms like InVision and ProofMe. There’s a bunch of them too. Not all Slack apps are created equal, judging by the lackluster effort put into their description page, I’d advise you to dodge TrackDuck.

Real-Time Collaboration

Apps like SketchTogether or SketchBoard, provide a nice feed of real-time collaboration. While this is just a single feature included in some of the project management apps above, the focus on simplicity by these apps results in a lightweight, enjoyable user experience.

Project Resources

These are cool. Much like the Giphy integration, I cited in my evangelical post about Slack’s addictive qualities, designers can enter a simple command to retrieve design inspiration from Dribbble, high-quality free photography from Unsplash (a really cool photo site btw!). Sure these teeter on being nothing more than shortcuts, but I love using Giphy, so I plan on giving these a shot.

Miscellaneous

Two apps that defy category are Lookback and Marker. Lookback posts the results of outsourced user testing as they come in. Marker is just a sweet, simple image annotation app that lives in your browser as an extension.

Apps That Would Be Cool

One app I would love to see integrate with Slack would be Kuler. Instant color swatches would save so much time, especially if the app were smart enough to detect your SCSS color variables.

Imagine being able to punch in a keyword or two, along with the number of swatches you want, and getting back little thumbs of each color along with hex codes to copy and paste. I’m not holding my breath for Adobe to integrate with Slack, but a designer can dream, right?
Continue reading %The 5 Best Slack Apps to Accelerate Your Design Process%

via Reme Le Hane