How we did technical interviews (spoiler: no whiteboard coding)

Demo of our photo-to-shop app, Madora
  1. We played a “client” who approaches our company and wants us to build some computer vision project for them. The “client” gives brief and kind of vague description of the task.
  2. A candidate may and should ask any questions to the “client”, they want: about limitations, purpose, time and money budget, whatever. We (“client”) answer them directly if we can or provide some direction and reasoning why we cannot be more specific.
  3. After a candidate is done with questions, they have a hour-two-three (no limitation from our side) to think, draft, google, do whatever they want for the final preparation.
  4. Finally, the candidate should present an approach, how they would tackle the problem, and more ways, the better. Also, they should present milestones our company should deliver, time and resource budget, motivation/justifications for the approaches and so on.
  • we make sure that the “task”, which “client” requests for is not something you could git-clone, but the research topic. It was unsolved for the “general” case, but several approaches to the narrower problems surely exist already.
  • we present a candidate several different options for the topic, in order to adapt to candidate prior experience. E.g. it could be the multi-modal matching, captcha, etc.
  • questions candidate asks. Use-cases? Datasets? Limitations? How to measure the quality of the solution? So and so on.
  • Where did they google, if they did? Papers? Blogposts? Tutorials?
  • How realistic was the proposed approach to implement? Does it sound technically reasonable? Does a candidate actually understand how the methods they propose to use work?
  • If not (and if they acknowledge it themselves — then that is OK), were they able to quickly grasp advantages and limitations of the method?
  • proficiency in programming languages, as we were not tied to any specific one and uses whatever was suitable (end up with mix of C++, CUDA, Python and PHP).
  • knowledge of specific algorithms.
  • First, no coding interview doesn’t mean we didn’t check anything related to the coding. We asked about previous experience, difficulties and so on, so people who never wrote a line in their life were easy to detect.
  • Second, and probably the most honest reason, is that I believe that the test setup should be as close as possible to the actual thing which we will be doing. Anything I could think of as a task for a coding interview, is quite far what we were doing in practice, be it experimenting, or writing a fast and custom C++ library for similarity search. Moreover, in real life we code with the help of documentation, google and stackoverflow. All these things do not really fit time-limited and stressful interview setup.
  • In the same time, the approach I have described is similar enough to the things we were doing, except the actual implementation. It is also quite an uncommon approach, so we need not to afraid of people who are trained to pass the coding interviews, but nothing else.

--

--

--

Computer Vision researcher and consultant. Co-founder of Ukrainian Research group “Szkocka”.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

State and Strategy Design Patterns in PHP

Working with the Forwarder Action in OpenWhisk

Host Google domain on AWS S3 via AWS CloudFront

Notes on Kubernetes based MQTT workflow on Raspberry PI

Feelings rule — Sentiment Analysis with VADER.

CS373 Spring 2022: Daniel Fernandez

Python Data Structure Basics - I

Create a riak_core application in Elixir (Part 2)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Dmytro Mishkin

Dmytro Mishkin

Computer Vision researcher and consultant. Co-founder of Ukrainian Research group “Szkocka”.

More from Medium

Boruvka’s Algorithm

Binary Search Tree for Dummies

LeetCode 3. Longest Substring Without Repeating Characters

Identify Complete Binary Tree — Leetcode 958