Typeahead and autosuggest with pure Solr and Nginx

A long time ago I was writing about a very simple technic which can be used to quickly provide auto-suggest for websites with the support of Solr: Incredibly fast Solr autosuggest . This was using the terms function of Solr which enables us to search for terms, surprisingly.

This solution … Continue reading

Python MySQLdb vs mysql-connector query performance

Query times for random PK using MySQLdb and mysql-connector

There are a lot of python driver available for MySQL and two stand out the most. The one, traditionally everybody’s choice, sort of industrial standard MySQLdb. It uses a C module to link to MySQL’s client library. Oracle’s mysql-connector on the other hand is pure python so no MySQL libraries and … Continue reading

Multi variant AB testing vs Multi-Armed bandit

I’ve read a lot of discussions lately around different versions of experimenting/testing. People are seemed to be very religious about the subject and two cardinal questions are separating the groups. Frequentist vs. Bayesian approach and AB testing vs. Multi-armed bandit solutions. Right now I’m mostly interested in the second problem … Continue reading

5 steps to self-managing server infrastructure

Self-managing servers

Managing servers is a tedious work we all have to do to some extent. But it doesn’t have to fill our whole day. What if I tell you that you can build a self-managing system with some discipline and effort? I went through implementing a self-managing database infrastructure of thousands of … Continue reading

Group by limit per group in PostgreSQL

In web applications it’s very common to try to limit the results by group. For example showing all the new posts with the the two latest comments on them. Or have the best selling categories in an e-commerce website showing the 3 most popular products in those categories.

In MySQL … Continue reading

Split or leave frequently updated column in PostgreSQL

Make you postgresql run

I have a database migrated from MySQL to PostgreSQL (I had my good reasons but this post is not about that). In MySQL because of MVCC behaviour it makes sense and it’s actually a recommendation to split frequently updated columns from large tables especially if using a web framework like Django … Continue reading

Pushing logs to loggly with fluentd

Setting up Fluentd log publisher to Loggly is straightforward thanks to the detailed tutorials can be found online. Some useful readings:

One gotcha: numeric fields in loggly

By default everything … Continue reading

Are you interviewing for success or failure?

Top 5 interviewing mistakes and how to overcome them

Many people doesn’t think that way but interviewing is a skill just like communication or problem solving. In the field of IT it’s specifically highlighted where individuals can be extremely successful even with lacking social skills. I saw many companies making the mistake of putting the best developer or system engineer into the interviewing role which sometimes leads to disastrous results. Why that happens?

Top 5 mistakes technically excellent interviewers do

1) Taking it as an exam

We all went to school and we have vivid memories about our teacher who had a perfect sixth sense to find the only questions we didn’t know the perfect answer for. Although we shouldn’t repeat that I see it’s happening many times. Interviews should be about what the candidate knows not what he doesn’t.

2) Being hypothetical

There are certain situations when it’s benefical but in general hypothetical questions will be answered by hypothetical answers. You need to ask yourself what did I learn from this answer about candidate’s ability to contribute to our team/company. If you don’t find a satisfying answer you shouldn’t ask those questions.

3) Looking for specific answer

Another common mistake which can be a subset or result of the previous is that the interviewers ask a very open question which they expect a very specific answer. An answer which may be specific to their position, to the company etc. Do you want to hire somebody who thinks the same way you do or do you want to bring somebody with new perspectives, new ideas to the team/company? You probably don’t look for your clones to work with, right?

4) Trivia questions

Once I had an interview where I had to answer questions like what DRY or IDE stands for. In the same situation now I would just ask back: “is this really the knowledge I need to have to be successful in your environment?”. Questions which can be found the asnwers for with a couple of seconds of googling won’t help you get to know the candidate better. In the field of IT experience and mindset is much more important than lexical knowledge.

5) Not having ownership about the process

In spite of the common belief it’s the interviewers’ job to find enough information to be able to properly assess the candidate’s skills and potentials. If at the end of … Continue reading