ПоискПочтаКартыМаркетНовостиСловариБлогиВидеоКартинки
Войти

Работа в Яндексе

Разработчик сервиса Яндекс.Календарь

Яндекс.Календарь помогает планировать свои дела и назначать встречи, а также напоминает о важных событиях.

Для нас Календарь — это не только онлайн-сервис, но и важный внутренний инструмент, которым пользуются все сотрудники компании для организации собраний и планирования ресурсов.

В Календаре есть много интересных задач: синхронизация с мобильными устройствами, разработка API Календаря для других сервисов Яндекса, повышение производительности и надежности. Для развития сервиса нам нужен грамотный разработчик, знающий Java.

Требования:

  • хорошее знание Java;

  • знание классических алгоритмов и структур данных;

  • опыт разработки многопоточных приложений;

  • опыт использования MySQL или других реляционных СУБД;

  • ответственность и аккуратность, умение тестировать собственный код и работать с чужим;

  • умение работать в команде.

Условия

    Работа в московском офисе Яндекса полный рабочий день.

    Подробнее об условиях работы в Яндексе

    Продемонстрируйте свои знания

     

    Перечислите все проблемы, которые вы видите в данном коде:

    public abstract class Digest {
          private Map<byte[], byte[]> cache = new HashMap<byte[], byte[]>();
     
          public byte[] digest(byte[] input) {
              byte[] result = cache.get(input);
              if (result == null) {
                  synchronized (cache) {
                      result = cache.get(input);
                      if (result == null) {
                          result = doDigest(input);
                          cache.put(input, result);
                      }
                  }
              }
              return result;
          }
     
          protected abstract byte[] doDigest(byte[] input);
      }
    

    Какие из следующих стандартных контейнеров позволяют найти в них элемент (по его значению) за O(log(n))?


    Напишите lock-free реализацию класса с методом BigInteger next(), который возвращает элементы последовательности Фибоначчи. Код должен корректно работать в многопоточной среде.


    Есть таблица в MySQL-базе, в которую записываются регистрирующиеся на сервисе пользователи. Затем, если пользователь удаляется с сервиса, в соответствующей записи в этой таблице появляется время удаления. Логин можно использовать повторно, если на момент регистрации в базе нет такого же действующего логина.

    CREATE TABLE users (
      user_id BIGINT NOT NULL,
      login VARCHAR(40) NOT NULL,
      created_time TIMESTAMP NOT NULL DEFAULT NOW(),
      removed_time TIMESTAMP NULL DEFAULT NULL,
      state INT NOT NULL,
    
      PRIMARY KEY (user_id)
    );
    

    Напишите SQL-запрос, который выводит строки, соответствующие действующим логинам (поле state равно 1), и добавляет колонку removed_duplicates, где выводится число пользователей с такими же логинами, удалившихся с сервиса (поле state равно 2).


    Расскажите нам о себе

     

    Пожалуйста, укажите код города

     
    ОтправитьОчистить

     

     

    Нас уже больше 3500 человек

    Но интересных задач гораздо больше, чем нас

    Коротко о Яндексе

    Все, что вы хотели бы знать о компании перед тем, как идти к нам работать

    Стажировка

    В результате вы сможете узнать Яндекс изнутри и, если вам понравится, устроиться на постоянную работу

    Памятка

    Кто такой менеджер проектов Яндекса и как им стать

     

    Если вы опытный специалист и хотели бы работать в Яндексе, но не нашли для себя подходящей вакансии, не отчаивайтесь, а напишите нам. Вдруг мы договоримся?

    ruRu