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

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

Мобильные сервисы - это молодой и активно развивающийся сервис Яндекса. Мобильные сервисы - это не только приложения для телефонов и веб страницы, оптимизированные под маленькие экраны. Это и разработка серверных модулей обеспечивающих слаженную работу приложений и веб страниц. Серверные модули рассчитаны на высокую нагрузку, создаваемую сотнями тысяч пользователей.

Вас ждёт широкий фронт работ, интересные и нетривиальные задачи, высоко нагруженные приложения. Созданными вами программами будут пользоваться все пользователи мобильных Яндекс-сервисов.

Требования к кандидату

  • опыт разработки на C/C++;

  • опыт разработки под Linux/POSIX;

  • опыт многопоточного и сетевого программирования;

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

Плюсы

  • опыт в unix shell;

  • умение разбираться в чужом коде;

  • знание скриптовых языков — php;

  • знание протоколов http, smtp, imap, xmpp.

Условия

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

    Вакансия открыта для кандидатов из городов России и СНГ, готовых самостоятельно переехать в Москву.

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

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

    Вопрос 1

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

    class Foo
    {
    public:
        Foo(int j) { i=new int[j]; }
        ~Foo() { delete i; }
    private:
        int* i;
    };
    
    class Bar: Foo
    {
    public:
        Bar(int j) { i=new char[j]; }
        ~Bar() { delete i; }
    private:
        char* i;
    };
    
    
    void main()
    {
        Foo* f=new Foo(100);
        Foo* b=new Bar(200);
        *f=*b;
        delete f;
        delete b;
    }
    
    Ваш комментарий

    Вопрос 2

    Выберите самый точный вариант вычисления суммы положительных чисел:

    Вариант 1:

    double sum(vector<float> &v)
    {
         return accumulate(v.begin(), v.end(), 0.0);
    } 
    

    Вариант 2:

    double sum(vector<float> &v)
    {
         sort(v.begin(), v.end());
         return accumulate(v.begin(), v.end(), 0.0);
    }
    

    Вариант 3:

    double sum(vector<float> &v)
    {
         sort(v.begin(), v.end(), greater<float>());
         return accumulate(v.begin(), v.end(), 0.0);
    }
    

    Аргументируйте ответ:

    Ваш комментарий

    Вопрос 3

    Какой контейнер лучше всего подходит для хранения объектов, если обработка чаще всего будет происходить по принципу FIFO?

    Аргументируйте ответ.

    Ваш комментарий

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

    Резюме до 250 КБ
    Ссылка на профиль в Моем Круге
    Имя, Фамилия
    Телефон

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

    E-mail
    Дополнительные сведения
    если Вы узнали про эту вакансию от сотрудника Яндекса, пожалуйста, укажите его имя и фамилию