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

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

Разработчик сервиса Яндекс.Народ (Perl)

Яндекс.Народ — один из крупнейших бесплатных хостингов рунета. На нём сейчас живет почти два миллиона сайтов.

В команду Яндекс.Народа разыскивается Perl-программист. Ищем ответственного и внимательного к мелочам разработчика, который не боится сложных задач и чужого кода, хочет работать и видеть конечный результат своей работы.

Вам предстоит:

  • разрабатывать серверную часть хостинговой платформы и конструктора сайтов;

  • решать вопросы, связанные с высокой нагрузкой и отказоустойчивостью;

  • придумывать новые технологические решения и улучшать существующие.

Обязательно:

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

  • опыт работы с базами данных (предпочтительно MySQL);

  • опыт разработки под Unix.

Желательно:

  • опыт разработки в больших и нагруженных интернет-проектах;

  • базовые знания основных современных веб-технологий (html, js, css, xml и т.д.);

  • опыт работы с nginx.

Условия:

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

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

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

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

     

    Что напечатает программа? И почему она это сделает?

    my @a = (0, 1, 2);
    my $b = @a;
    
    print $b;
    

    Что напечатает программа? И почему она это сделает?

    my @list = ( undef, '', ' ', 0, '0', '000' );
    
    foreach my $i ( @list ){
      print (( $i ? 'true ' : 'false ' ), "\n" );
      print (( defined( $i ) ? 'defined' : 'undefined' ), "\n");
    }
    

    Что напечатает программа? И почему она это сделает?

    package A;
    sub new { return bless {}; }
    sub foo { return 'A'; }
    
    package B;
    use base 'A';
    sub foo { return 'B'; }
    
    package main;
    my $obj = B->new();
    print $obj->foo();
    

    Есть функция подсчета размера элементов директории по её листингу. Функция возвращает размер директории.

    # $listing example: [ { type => 'file', path => '/etc/hosts' }, { type => 'dir', path => '/etc/postfix' } ]  
    
    sub get_size {
      my $listing = shift;
      my $size = 0;
      for(my $i=0;$i<scalar(@{$listing});$i++) {
         if ($listing->[$i]->{type} == 'file') {
           my ($size, $time) = (stat($listing->[$i]->{path}))[7,9];
           $listing->[$i]->{size} = $size;
           $size+=$listing->[$i]->{size};
         } else {
           $listing->[$i]->{size} = File::Size->new()->setdir($listing->[$i]->{path})->getsize();
           $size+=$listing->[$i]->{size};
         }
      }
      return $size;
    }
    

    Какие ошибки есть в коде?

    Предложите свой вариант реализации функции:


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

     

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

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

     

     

    Мы постоянно растем и ищем талантливых людей

    У нас хорошая компания не только для обсуждения работы

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

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

    Стажировка

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

    Памятка

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

     

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

    ruRu