Mac разработчики редки и ценны :)

На РСДН-е появилась вакансия Mac OS X разработчика в Каспер. Что странно, денег дают даже больше чем разработчикам вендовых драйверов. Честно сказать, меня это удивляет, с учетом того, что требования к разработчикам под MacOS довольно низкие. Ни у кого нет Маков? Ни кому под них не интересно писать?

Но в любом случае: добро пожаловать

Классическая задача для собеседования в реальной жизни

Случилось странное – я столкнулся с буквально классической задачей с собеседования в реальной жизни. Задача состоит в том, что необходимо найти первый не нулевой бит в массиве. Поиск должен происходить максимально быстро, скорость поиска желательно получить приближённую к линейной. Никаких правил по распределению единиц в массиве нет. Массив не велик и должен не вылезать за пределы одной кэш-линии.
Родились 3 варианта алгоритма, одна часть которого общая во всех случаях, вторая специфическая.
Общая часть сводится к поиску первого 32 разрядного слова с хотя бы одним не нулевым битом. Дальше, в найденном 32 разрядном слове ищем первый не нулевой бит. Я не знаю как можно оптимизировать первую часть алгоритма, так что ищу простым перебором. Continue reading

Как не надо писать вакансии

Обычно, вакансии C++ разработчиков выглядят довольно логично. Но иногда попадаются просто редкостные уродцы. Вот небольшой кусочек одного из них:

Вам нравится программировать и решать нетривиальные задачи? Вы читали Страуструпа и Александреску, отличаете Composite от Decorator и знаете, где в памяти размещаются статические данные? Умеете исследовать дампы и поддерживать legacy код, но при этом вам по душе применить пару-другую паттернов в новом проекте? Тогда мы с нетерпением ждем ваше резюме на позицию Software Developer C++!

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

Странные собеседования

В последнее время мне “везет” на странные собеседования. Чтоб было понятнее о чем я говорю, странные собеседования отличаются от нормальных неким неожиданным волшебным поведением противоположной стороны. Итак, пообщался я с R&D подразделением одного крупного американского банка, сидящим в солнечном “бананово лимонном” и гордым маленьким стартапом из не менее солнечной Калифорнии. Что довольно важно, или может на оборот, не важно, менеджеры принимающие итоговое решение были русские.
Continue reading

Тестовое задание.

В целом, я противник каких бы то нибыло тестовых заданий. Большинство компаний в качестве тестовых заданий дают либо совсем уж унылое говно, либо что-то, очень смахивающее на кусок необходимого им компонента. Да и вообще, надо очень сильно хотеть работать где-либо, чтоб согласиться тратить на это свое время.
Хотя, иногда, бывают и исключения. Например, это тестовое задание компании ESET. Делать я его не стал, но подход мне понравился. В качестве задания предлагается провести реверс-инжиниринг небольшого приложения, содержащего в себе простую (8 команд) виртуальную машину. Данная виртуальная машина используется для проверки правильности комбинации имя пользователя/пароль. На выходе должно быть написано приложение, использующее байт-код виртуальной машины и реализующее ее саму.
Для того чтобы кандидату было интереснее, в приложении присутствуют какие-то антиотладочные трюки, т.к. IDA ругается на сегмент экспорта, а Hex-Rays утверждает что SP некорректен.

CodeReview. Теория и практика.

CodeReview – классная штука, не правда-ли? Если отвлеченно подумать об открывающихся возможностях и количестве потенциальных ошибок, найденных при проведении CodeReview, то начинает казаться что практика просто великолепна и мега полезна.
Обычно, путь к внедрению этой практики извилист и тернист, но ништяки, которые по легенде ожидают прошедшего, заставляют забыть о сложной дороге.
Как ни странно, первым делом, обычно, создается стандарт кодирования. Думаю, это вызвано тем что любая уважающая себя компания должна иметь собственный стандарт. В стандарте обязательно нужно прописать где ставить скобочки, а где пробелы, какие индентификаторы писать с прописной буквы, а какие со строчной. Стандарт просто необходимо согласовать, проревьювить раз надцать и утвердить. После этого весь код будет однородным и очень красивым, не зря же стандарт составляли лучшие из лучших компании! Continue reading

C++ не нужен?

В преддверии лекции Страуструпа, посвященной C++0x, наша маленькая но разношерстная команда разработки под Mac OS X разошлась во мнениях о ее потенциальной полезности. Одна часть, что показательно молодежь, утверждает что и от книги мозги вскипают, а от лекции и подавно поплохеет. Другая часть, постарше, ожидает что будет очень интересно.
Так вот, получается довольно интересная ситуация. Приток новых людей в область сильно сокращется, новички хотят иметь в языке как минимум сборку мусора, а старые разработчики уходят кто куда.
С учетом всего этого, очень интересно, что ждет область лет через 10. С одной стороны, плюсы это далеко не настольно незаменимы как чистый Си, с другой стороны, на данный момент это единственный язык позволяющий писать достаточно шустрый код для конечного пользователя. Но, как ни крути, такая ситуация будет не всегда, мощность компьютеров рано или поздно позволит работать программам на управляемых языках с приемлимой скоростью.
В целом, тенденция с сокращением количества C++ разработчиков не так уж и плоха, будем как кобол-динозавры, жутко редкими и жутко дорогими. С другой, скучно, наверное, в говнищах 30 летней давности копаться? Но, на данный момент, описанная выше тенденция сплошной плюс – зарплаты растут, количество вакансий растет, интресных задач все больше.

Работа в Москве

Похоже, что московское АйТи таки оправилось от кризиса (ну, либо думает что оправилось).  В крайнем случае в области разработки на C++ зарплаты уверенно ползут вверх. С помощью МоегоКруга и hh.ru, получилось собрать довольно интересную информацию, такую как:

  • Зарплату в 150 тыр на старте давать никто не хочет (блин, обидно), хотя, по слухам, где-то такие ЗП есть!
  • На 130 тыр вакансии уже есть, но их чертовски мало. Тем не менее, очень хорошему разработчику на C++ или архитектору дать могут.
  • До оплаты в 100-110 тыр созрели почти все более-менее уважающие себя компании. Это очень приятный момент.
  • Ниже 100.. ну это уже не интересно, хотя, надо признать, таких вакансий не мало (если не сказать что дохрена), но и требования там довольно не серьезные.

При этом, мэйнстрим, такой как .NET на оборот проседает. Ну, это и не удивительно, чем больше предложение, тем ниже цена. Очень низкий порог входа дает о себе знать.