How we conduct interviews in Barcelona

Still, I decided to share our experience in hiring people for work, and I decided to do this for two reasons: we managed to gather all the strongest developers of our stack in the city, and people who come leave us very rarely (more precisely, there was only one case of leaving your own business).


Everything that is written below may suit you, or maybe not. I do not pretend to be the ultimate truth, I just tell you what we have come to and why we like it. I will also share examples of patterns of behavior and code that almost unambiguously decide for or against a candidate - regardless of anything else.


We are a food company, we do not need shift workers for three months. This also leaves its mark on the selection process. We are not able to compete in salaries with young invested start-ups (this does not mean that we work for a penny, just outbid a talented brain will not work). The salary is higher than the market average, but you can find galleys at once ten thousand more generous. We have to look for our own way of attracting specialists, and I will talk about it.


Filing an application


We tried agencies (I myself came more than five years ago through an agency), but as a result we settled on word of mouth and direct contacts. Two million people live in Barcelona, ​​but there are not many high-level developers, and I know everyone, if not by sight, then by name.


We have a test task of medium difficulty. Any open repository with something more serious than helloworld - of course, replaces the test task. Applicants for the β€œnon-beginner” position will need from six hours to two days to complete and complete it. Not a single professional has yet refused to do it - instead of a whiteboard, list inversion, and syntax questions directly at the interview. We are going to work together for years - two days there will not do the weather. We do not pay for the test task, and I consider this an important point for evaluating the applicant: if a person requires a ruble for each sneeze, we are unlikely to work out. When the test task was just formulated, I was the first to solve it - both for comparison with the candidate code, and simply so as not to become bronzed.


, : , , . .  β€” , , . , , , , .


: , 7/10 β€”  , .  β€”  ( 8/10), , , , . , .  β€”  , .



. 22 Torre Mapfre β€”   β€” , . , OSS. ,  β€” core committer . , . , , SO , - .


, , , - , , , , , .  β€”  ,  β€”  . , , , . 15 , , - .  β€”  , .


, , . , , .


, , .


. , ,


Ruby β†’ 


  • SRP
  • - IO
  • -
  • (integer, float, double)

Ruby β†’ 


  • , (array.shuffle!),
  • each
  • -
  • ,
  • .map{...}.map{...}.map{...} ,
  • , , ,

Ruby β†’ 



Elixir β†’ 


  • , doctest
  • , pattern matching

Elixir β†’ 


  • if ( )
  • Phoenix - ( Plug)

Elixir β†’ 


  • DynamicSupervisor, GenStage, Flow
  • property based tests
  • use @behaviourto describe the interface
  • own protocol (where appropriate)
  • own implementation Access
  • appropriate use __using__(opts)

Somehow like this. I understand that what is written above smells like taste, but it should be so. We do not want to be perfect interviewers. We want to maximize the hiring of people who we need and who will be comfortable with us. In one bottle. And we succeed precisely because of this bias on the shore. As experience shows, in the bottom line we have almost 100% conversion: the people who come to us stay for a long time, and they are comfortable with us.


All Articles