No, I won’t write a string reverse program during a job interview (unless you are Google)

This article for you if

  1. You are a developer with more than five years of experience,
  2. OR you are about to hire this type of developer.
The most common practice while interviewing developers is to ask “tricky questions” first, because “we need to know the way you think.” Continue reading

Can robots have the same rights as humans?

My favorite writer Isaac Asimov was thinking about this question a long time ago and even created the three laws of robotics. At that time it was mostly science fiction, but now we face these issues in real life.

One part of my job is to support an admin interface for They have real human-moderators there, but recently we’ve had the task of adding auto-moderation for some special kinds of reviews.

As we log much of the moderators’ work, we face a question: how do we log the work of auto-moderator (robot)?

Should we pretend it is just another moderator and gave it the same rights? Or, should we make this auto-moderation procedure something completely different, being logged in a different place (i.e. different database fields, so we have humans in one field and robots in another)?

I wonder how other companies who have faced the same questions have solved this problem. Did they give more rights to robots?


How to make your chat-bot more human

I have an addiction to chat-bots, as you can see from this series of articles: one, two.

They can be really useful, but a bit boring. They usually have some pre-defined answers to share with you, depending on the situation. As an example, you could imagine an “umbrella-bot.” You might ask it, “Do I need an umbrella today?” and it will tell you yes or no, depending on the latest weather report.

But what if you want to add some individuality to your bot? Say you want to make it more human-like. You don’t want it to pass the Turing test necessarily, but you still want your users to feel something when they are interacting with your bot.

What does it actually mean to be “more human?”

Well, no offence, but it usually means “not optimal.” And you actually can get the list of “non-optimal” behavior here: List of cognitive biases

For some inspiration, you can create a “too optimistic” bot from our example with the umbrella-bot. Or maybe you’d rather try a cynical one? You choose!


4 reasons why your startup will fail

Today I had a really awkward discussion with a friend of mine, who asked me: “Okay, you are programmer, right? I need something like AirBnb—how much it might cost, and how long will take?”

You might be smiling right now. “Oh no, that’s definitely not my case. I know exactly how successful my startup will be.”

But in most cases you are not much better off than this friend. I was once in the same place. Continue reading

Precision and recall explained for 5-year old

In algorithms of binary classification I usually meet the terms “precision” and “recall.” I had a really hard time understanding their meaning on a basic level. In other words, how would I explain them to a five year-old? I finally found these definitions:

  1. Precision is how often our algorithm predicts class one and turns out to be right.
  2. Recall is how many objects of class one the algorithm has found at all.

Continue reading