*** ВНИМАНИЕ: Блог переехал на другой адрес - demin.ws ***

суббота, 26 июня 2010 г.

Bloomberg: Вакансии

К слову сказать, компания Bloomberg, где я работаю, сейчас имеет приличное количество открытых вакансий для интернов, недавних выпускников и, конечно, матерых профи.

Например, можно зайти в наш раздел вакансий, указать в «Job Function» категорию «Research and Development» (R&D) и получить список открытых позиций для программистов во всех наших офисах.

Я работаю в Лондонском офисе, и поэтому многое из этого поста относится к лондонскому R&D, но в целом, все верно и для остальных офисов.

Например, конкретные вакансии в подразделение «Trading Systems», где работаю я: раз, два и три.

Что важно, по многим вакансиям (например, нашим) не требуют специальных знаний из области финансов, трейдинга и т.д. Если они есть – замечательно, но в целом мы просто ищем грамотных инженеров, или по-русски говоря, программистов.

Подавляющее количество позиций – это С++ и UNIX, но, например, в мобильную команду (iPhone/iPad/Android/Blackberry) также приглашают специалистов по Objective-C и Java.

Я координирую процесс найма в нашу группу, поэтому знаю процесс чуть более глубоко, и могу подсказать детали интересующимся.

Как подать резюме? Нет ничего проще – просто послать его через сайт. Многие думают, что такие заявки никто не читает – это неверно. Я сам устроился точно таким же образом. Все читают. Другое дело, часть отсеивается на стадии начального анализа присланных резюме, хотя, я думаю, что на этой стадии отсеивают только полностью неадекватные заявки, когда люди даже не пытаются прочитать требования и хоть как-то отразить это в своем резюме.

Какие шансы пройти? Ничего гарантировать нельзя, но если у вас 4.0 и более баллов на Brainbench на тесте по С++ (не забудьте дать ссылку на профайл в резюме) и более чем пятилетний постоянный опыт больших проектов на С++ , то шанс добраться до телефонного интервью весьма велик. А если вдобавок у вас есть рейтинг на TopCoder’e, CodeForces или что-то в этом роде (также не забудьте дать ссылку), то шансы и на личном интервью очень даже неплохие.

Теперь самая интересная часть марлезонского балета – а как это все работает для граждан России и бывших соцреспублик, у которых нет европаспорта? Могу сказать, что Блумберг может предоставить визовое спонсорство для понравившегося кандидата.

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

Зарплаты? Блумберг всегда адекватен к текущему уровне зарплат на рынке. Насколько я знаю, сейчас зарплаты программистов в Лондоне могут колебаться от 35K до 75K фунтов в год (50K-100K USD) минус 20% налогов Великобритании. Вообще, для ориентации по заплатам и вакансиям можно посетить jobserve.co.uk или monster.co.uk.

А как вообще работается в Блумберге? Интересно (объемы внутренних технологий объять невозможно), динамично (недельные релизы прямиком в онлайновый продакш), разнообразно (тренинги, возможность не уходить в менеджмент, если не хочется), престижно.

Ну и под занавес, как говорится, чтобы два раза не вставать – у нас в Лондонском офисе 22-го июля будет Bloomberg Technology Open Evening – день открытых дверей для разработчиков. Однозначно понимаю, что не все россияне могут так чисто взять и на денек ради этого сюда приехать, на всякий случай – вдруг кому будет-таки полезно, и кто захочет прийти – могу сделать инвайт (пишите на alexander@demin.ws).

Макросы для определения компилятора, библиотеки, операционной системы или архитектуры

Очень полезный проект - http://predef.sourceforge.net/.

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

понедельник, 21 июня 2010 г.

Отладчик в Visual Studio 2010

В отладчике Visual Studio 2010 появилась просто фантастическая штука - отображение трассируемой переменной не где-то в особом окне, а прямо на тексте программы. Это позволяет обращать внимание на переменную, только когда доходишь до ее места в программе.

Лондонское метро - live map

Не уверен, что это будет кому-либо полезно за пределами Лондона, но тут меня поразил сам факт существования подобного сервиса.

Живая карта Лондонского метро - http://traintimes.org.uk/map/tube/

Тут видно движение отдельных поездов.

И опять-таки, идея нереволюционная. Но! Самое важное, что такой сервис есть благодаря public API, официально поддерживаемый Лондонским Метро, которая является полугосударственной структурой. Теперь ясно, откуда такое изобилие приложений для айфона и андроида, предоставляющих разнообразную on-line информацию о метро. Я то думал, они просто парсят страницы официального сайт, а тут, оказывает, все дается на тарелочке.

воскресенье, 20 июня 2010 г.

Блог на английском для носителя русского языка?

Вы пробовали вести блог на английском?

Я уже долгое время тщетно пытаюсь это делать. Но дело как-то не идет. Каждый пост занимает в разы больше времени, посты приходится укорачивать, упрощать язык ("эдак" уже не завернешь). А самое, что внутренне неприятно - я четко вижу разницу в качестве языка. Вместо более-менее живого и, надеюсь, интересного, способа выражения мыслей, что я себе могу позволить на русском (хех, все-таки 30 лет практики), на английском получается какое-то сухое школькое сочинение, часто с неочевидными ошибками. И уж точно выглядещее, как НЕклево..

Кстати, а вы знаете интересные блоги на английском (хотя бы технические), которые пишут носители русского? (конечно, если человек вырос в английской среде с 5-6 лет, то это не в счет).

fill_n vs memset

В данный момент на текущей работе я занимаюсь тем, что называется - высокоуровневое серверное программирование на С++. У меня уже есть все необходимые библиотеки низкого уровня и среднего (более того, если я отказываюсь по какой-то причине от готовой библиотеки, меня могут потом попросить это объяснить), и огромное количество библиотек высокого уровня, уровня бизнес-логики. К чему все это?

А вот к чему. Если разобраться, что я могу писать код вообще без С-шных штучек типа массивов, malloc/free, старого способа приведения типов, строчек с нулем на конце и т.д. Получается, что мой диалект С++ можно урезать на тему всего, что я перечислил. Просто убрать, и все.

И от этого будет только польза. Сколько ошибок потенциально я НЕ сделаю в арифметике указателей (ее просто не будет)? Вместо того, чтобы мотивировать человека "разумно использовать наследия С в С++", их надо просто выключить. Конечно, сразу сузится и круг решаемых задач, но мой, кстати, не самый узкий круг, можно покрыть таким вот урезанным в сторону "правильного" С++ диалектом С++.

Например, как мне кажется, функция memset() в мире С++ в целом годится разве что для обнуления. Использование какой-либо иной константы-заполнителя принципиально приближает нас к проблемам с памятью. Хотите, например, "эффективно" заполнить строку пробелами, и зарядите для этого memset(), а потом вам неожиданно придется работать с многобайтовыми кодировками, и этот пробел, записанный через memset(), может стать источником проблем.

Так что используйте алгоритм "fill_n()" вместо "memset()". Может быть неэффективен? Может, а может и нет. Зато уж точно безопасен с точки зрения типизации.

пятница, 18 июня 2010 г.

Google I/O: all videos

Тут собраны все видео с Google I/O 2010, по категориям.

http://code.google.com/events/io/2010/sessions.html

Мне, например, очень понравилась презентация про новую Java машину с JIT в Android 2.2:



И про язык программирования Go: