Вакансии в Mac команде ЛК

У нас, в Mac команде ЛК появилась одна вакансия (работа в офисе в Мск, есть программа релокации). Условия, как всегда, отменные, коллектив прекрасный, офис замечательный и даже бассейн есть (2 минуты пешком)

То что описания вакансии две, не суть важно, т.к. нас устроит человек как с опытом из первой, так и второй вакансии.

Что самое важное, на вакансию “C++ разработчик (логика)” мы готовы рассматривать не только C++ разработчиков с опытом программирования под OSX, но и просто сильных *NIX разработчиков (BSD – предпочтительно, Linux – тоже не плохо), которых однозначно хотят перейти на OSX и готовы инвестировать в это некоторые усилия.

Со второй вакансий все проще – разыскиваются Objective-C разработчики имеющие некоторое представление о C/C++ (нулевое знание плюсов не пойдет однозначно).

C++ разработчик (логика)

Основные функции и задачи:

  • Создание программных решений в составе команды разработчиков;
  • Анализ исходных требований, уточнение поставленных задач;
  • Разработка оптимальных решений, оценка трудоемкости задач;
  • Участие в подготовке проектной и технической документацию по порученным задачам.

Позиция предполагает работы по:

  • портированию существующих Windows-компонент на Mac (включая и последующую отладку портированного кода);
  • реализации Mac-специфических компонент и сервисов (включая драйвера);
  • интеграции компонент в общий продукт.

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

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

  • Отличное знание C и C++;
  • Отличное знание библиотек STL и BOOST;
  • Знание платформы Mac OS X ИЛИ обширный опыт разработки под *NIX системы (FreeBSD, Linux, etc.) и желание перейти в разработку под Mac OS X;
  • Знание инструментальных средств разработки под *NIX, таких как GDB, Make, CMake;
  • Знание Sh, стандартных консольных *NIX приложений и какого-либо скриптового языка (предпочтительно Python);
  • Опыт работы с логами и крэш-дампами;
  • Опыт разработки мультиплатформенных систем (Windows, UNIX).

Желательно:

  • Понимание принципов и опыт разработки многоуровневых клиент-серверных приложений;
  • Знание и опыт использования межпроцессных взаимодействий;
  • Понимание принципов основных сетевых протоколов (как минимум TCP/IP);
  • Опыт портирования приложений с Win32 и UNIX.

C++ разработчик (UI)

Основные функции и задачи:

  • Создание программных решений в составе команды разработчиков;
  • Анализ исходных требований, уточнение поставленных задач;
  • Разработка оптимальных решений, оценка трудоемкости задач;
  • Участие в подготовке проектной и технической документацию по порученным задачам.

Позиция предполагает работы по:

  • портированию существующих Windows-компонент на Mac (включая и последующую отладку портированного кода);
  • реализации Mac-специфических компонент и сервисов;
  • реализации Mac-специфического GUI;
  • интеграции компонент в общий продукт.

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

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

  • Отличное знание Objective-C, опыт разработки на C/C++;
  • Опыт создания GUI с использованием Cocoa, знание STL и BOOST;
  • Знание платформы Mac OS X;
  • Знание инструментальных средств разработки под Mac OS X;
  • Опыт работы с логами и крэш-дампами.

Желательно:

  • Понимание принципов и опыт разработки многоуровневых клиент-серверных приложений;
  • Знание и опыт использования межпроцессных взаимодействий;
  • Опыт разработки мультиплатформенных систем (Windows, UNIX);
  • Опыт портирования приложений с Win32 и UNIX.

Писать можно мне на e-mail. Если не интересно самим, поделитесь с теми, кому может быть интересно. Заранее спасибо!

Я бы в камне высек и каждому разработчику на стол поставил…

НИКОГДА не пиши промышленной код на экзотическом и/или слабо распространенном, в компании где ты работаешь, языке программирования. Например на Perl/Haskell/Clojure или еще какой-то давно/недавно выученной тобой хреновине.

Ушел в “завязку”

Времени катастрофически ни на что не хватает, а на ближайший год очень серьезные планы. Одним из главных бессмысленных пожирателей свободного времени, до вчерашнего дня был РСДН, всё остальное давно “похерил”.
Поразмыслив на тему планирования времени, временно ушел оттуда, самозабанившись на 1 год. Жалко, конечно, но реально нужно достать еще свободного времени.

Слегка разочаровался в Scala

Когда-то, довольно давно, я взялся за поиск альтернативы для C++, который во все времена был и, как мне думается на данный момент, будет моим основным рабочим инструментом. Само собой, эта альтернатива мне была нужна не для того, что бы перейти в какую-то иную сферу, а для тех случаев, когда либо хочется написать что-то свое, либо нужно быстро создать какой-то прототип, проверить ту или иную концепцию. В такой ситуации JVM-based язык очень удобен и, по большому счету, безальтернативен, конкуренцию может составить разве что Python со своим простым синтаксисом и безграничным набором библиотек. Continue reading

Насколько полезно знание внутреннего устройства iOS

Прислали мне тут вопрос по почте, относительно полезности знания низкоуровневого устройства iOS. Не пропадать же добру, пусть будет общественным достоянием

Я прочитал эти темы, созданные Вами:
http://www.rsdn.ru/forum/apple.os/4951747.flat
http://www.rsdn.ru/forum/apple.os/4336664.1
1) Хочу спросить у Вас, полезно ли вообще среднестатистическому программисту iOS знать все эти вещи про устройство ядра? Я никогда не видел вакансий системного iOS-программиста (может потому, что живу в Минске =) ). Большинство вакансий связаны с вэбом, GUI или играми.

Знание внутреннего устройства среднестатистическому iOS разработчику совершенно бесполезно. Вакансий системного iOS-программиста нигде, кроме как в Купертино нет и, скорей всего, не будет, так как на не разлоченом iOS устройстве установить что-либо системное не представляется возможным, а разлоченых устройств не так уж и много.
Единственный плюс в понимании внутреннего устройства iOS в том, что сама iOS ничто иное как урезанная OSX, так что если ты имеешь представление об одной системе, то эти знания помогут и со второй. Только тут возникает еще одно “но” – вакансий для системного разработчика OSX тоже по пальцам пересчитать можно, в той же Мск люди с таким знанием нужны в паре-тройке компаний. Удаленной работы по данному направлению лично я найти не смог.

 2) Я как-то встречал такое мнение, что “и Линукс и Мак являются Юникс-системами (POSIX). С одного на другой [имеется в виду программирование] перейти несложно”. Насколько это верно?

Отчасти верно. Обе системы – UNIX-like системы, но при этом внутреннее устройство Darwin (ядро Mac OS X) и Linux кардинально различаются. Хотя, в Darwin много общего с BSD системами. Если говорить точнее, схоже все кроме управления памятью, процессами и потоками.
Так что, перейти с Mac OS X на Linux, если заниматься не ядром, а низкоуровневыми сервисами довольно легко, правда аналогичный переход с Windows на Linux, при условии что на Windows занимался низкоуровневыми вещами не на много более сложен.

Тестовые задания в Яндексе. Часть 2.

Как и планировал, опробовал второй способ сортировки, а именно сортировку подсчетом. Кода в разы меньше, сам код куда проще, но… Крайне плохо масштабируемое решение с сильной зависимостью от количества доступной памяти. Так при использовании максимального количества доступной памяти в 256 Мб, приходится делать 64 прохода по файлу. Если же попытаться разнести чтение и запись (как я писал раньше, асинхронная запись дает ускорение приблизительно в 10-15%) то количество проходов вырастает до 128 и итоговая скорость оказывается даже меньше чем при последовательной обработке. Так же, мое решение не будет корректно работать в том случае, если количество одинаковых элементов превысит максимальное значение помещающееся в size_t.
Тем не менее, сортирует довольно быстро: 1 Гб, в среднем, обрабатывается за 108 секунд.

P.S. а вообще, я выдохся с данной задачкой (как делать ясно, побочные эффекты алгоритмов тоже очевидны), так что вернусь ней… через еще пару лет?

Тестовые задания в Яндексе

Когда-то, давным-давно, в разгар активного поиска работы я написал в Яндекс. Не то что бы я думал туда пройти, все же алгоритмы не моя сильная сторона, но мне подумалось “а почему бы не попробовать, особенно с учетом того, что на РСДНе ходят легенды о полнейшей невменяемости собеседующих там товарищей”. Вобщем решил сходить и чисто позырить. Позырить мне так и не удалось, т.к. яндексовцы дали тестовое задание на дом, а на такое я принципиально не соглашаюсь. Но, надо признать, задание было интересное, и я его прикопал с целью когда-нибудь, когда будет соответствующее настроение, решить. Соответствующего настроения не было у меня два года, и вдруг оно появилось! Continue reading

Переход из C++ в Java.

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

Так что, я решил подойти к вопросу просто. А что может быть проще и логичнее чем поинтересоваться у HR о текущем спросе на Core Java разработчиков? Что я и сделал.

Хотя каких-то дельных ответов в самой ветке обсуждения я не получил, довольно много кто отписался лично. Несколько человек спросило не интересна ли мне работа связанная с C++ на суммы от 150 до 180, что, живи я в МСк, могло бы быть интересным. А еще несколько человек поделились по секрету информацией о том, что Core Java разработчик, обычно, претендует на 100-150, само собой, в той же МСк.

Так что, никакого экономического смысла в таком переходе нет. Специалисты со знанием C++ как были нужны, так и будут нужны еще много лет. А мне только-только начала нравиться Java %)))

Зачем пишут OpenSource приложени и что же можно написать…

На днях на РСДН всплыли сразу две интересные темы Для чего создаются Open Source проекты Задачки для самообразования. Лично у меня давно сформировалось мнение относительно этих вопросов, которым мне и хочется поделиться.

Начну с того, зачем вообще нужно писать OpenSource приложения и что это может дать обычному разработчику. Да, именно обычному разработчику, а не некой компании.

Во-первых, наличие OpenSource проектов это – огромный бонус при приеме на работу. Несмотря на то, что среди разработчиков ходит довольно нелепый миф про работодателей, которым совершенно плевать на OpenSource проекты потенциальных кандидатов, дела обстоят совершенно иначе. OpenSource проект – это код, который всегда можно легко оценить, глянуть историю изменений и, как следствие, легко составить мнение о потенциальном кандидате. Сразу видно как человек пишет код, как он думает и как он делает рефакторинг, если, конечно, он его вообще делает. Так же видно, какие у человека интересы и взгляды на прекрасное.

Во-вторых, OpenSource проект это – экономия времени при поиске работы. Довольно часто потенциальный работодатель просит пример кода либо выполнить тестовое задания. Так как при отсутствии собственных проектов такой код взять неоткуда, разве что украсть у предыдущего работодателя, то приходится или делать тестовое задание, или отказываться от вакансии. В то же время, вместо выполнения тестового задания всегда можно прислать ссылку на собственный OpenSource проект.

Continue reading

Обзор от PRUFFI

PRUFFI последнее время стал делать какое-то подобие обзора ЗП на IT рынке. В целом обзор не шибко информативен и, как мне кажется, несколько оторван от жизни. Я, вобщем-то представляю, где можно найти работу тимлида с оплатой в 150-170 тыр, но вот где дают 200-250? Теряюсь в догадках.