TeamLead С++ OSX wanted!

Не думал что когда-то напишу такое, но… я ищу себе замену! По деньгам не обидят, официально вилка звучит как 140-180. Функцоинал двоякий, есть интересное, есть болото, но это как и в любой другой работе. Писать можно мне на e-mail. Если не интересно самим, поделитесь с теми, кому может быть интересно. Заранее спасибо!

C++ TeamLead, описание вакансии

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

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

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

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

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

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

  • Инициативность и умение внятно, корректно обосновать логичность и правильность выбранного решения;
  • Опыт в управлении командами до 10 человек;
  • Опыт в создании WBS, распределении задач по членам команды и контроле за их выполнением;
  • Отличное знание 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.

Приближение выхода Rust 1.0

Судя по записи в официальном блоге Rust, ожидать выхода Rust 1.0 осталось всего ничего:

We plan to ship the 1.0 beta around the end of the year.

Что на мой взгляд просто отличная новость! А дальше еще интереснее:

After 1.0 is released, future 1.x releases will be backwards compatible

Что недвусмысленно намекает на то, что разработчики языка Rust куда более вменяемые по сравнению с разработчиками D. Как следствие, возлагаемые на язык надежды в плане использования в промышленной среде становятся все более и более оправданными.

А вот заключительное утверждение:

In many ways, Rust 1.0 is not so much an endpoint as it is a starting point.

Напоминает мне шутку о том, что C++ разработчики скоро разделятся на две группы: те кто успел выучить язык до выхода C++17 и те кто уже не выучит %)

На что бы заменить Python?

На прошлой неделе интегрировал наши замечательные автотесты не только нам, но и команде тестирования и задумался. А правильно ли я изначально сделал выбрав Python в качестве языка для реализации системы? Мне видится ряд плюсов и минусов, ну и некоторые дополнительные мысли созрели.

Плюсы

В качестве главного плюса этого выбора выступает простота самого языка и, как следствие, требованию к уровню разработчика необходимого для вхождения в проект очень низкие.
Динамическая природа языка способствует экспериментам в REPL и облегчает поиск оптимального решения.
Язык очень емкий, что сильно сокращает объем код и позволяет в пару строк написать очень не тривиальные для многих других языков вещи.
Огромное количество библиотек на все случаи жизни позволяет сосредоточиться на задаче, а не инструменте.
Ряд отличных IDE, например PyCharm, сильно облегчают разработку. Continue reading

Крик души о Python собеседованиях

Прибиваю в несколько офигевшем состоянии после проведенной пары мини-собеседований с SDET-ами на тему знания ими языка Python. Вообще, для меня Python, можно сказать что не родной язык, т.е. никаких вопросов с подковыркой я задать не могу хотя бы потому, что их просто не знаю. Поэтому, спрашивал то, с чем придется столкнуться при написании тестов для нашего нового тестового бота (который я как раз допилил). Список вопросов на который я пытался получить ответ:

  1. Расскажите про особенности многопоточности в Python. Зачем нужен GIL, его плюсы и минусы. (0 ответов)
  2. Как работает конструкция with open(…). Зачем она вообще нужна? (0 ответов)
  3. Что нужно добавить в класс, что бы при передаче объекта соответствующего типа в качестве аргумента функции print была выведена не информация о типе и адресе, а некая пользовательская строка. (1 ответ)
  4. Как в Python описываются абстрактные базовые классы? Зачем они нужны? (0 ответов)
  5. В чем основные особенности написания асинхронных приложений? (0 ответов)

Вот я думаю, может я что-то не то спрашивал? Просто мне не приходят в голову еще более простые вопросы.

Два вида мотивации сотрудников

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

Лично я с этим мнением категорически не согласен и считаю что сотрудник, в первую очередь, должен хотеть работать за деньги и за другие материальные ништяки. Такая позиция часто удивляет или настораживает HR, и когда на собеседовании говоришь в лоб о том, что работаешь “исключительно за деньги” они как-то странно на тебя смотрят. А зря и вот почему.
Continue reading

Выступления Майерса на NDC

Досмотрел лекции Майерса с NDC 2014 (WTF, в Норвегии проходят годные конференции, а у нас нет?!) Effective Modern C++ и CPU Caches and Why You care.

Послушать было достаточно интересно, Майерс просто ну очень хороший докладчик, хотя, надо признать, слушать про Auto достало. Одно радует, опытный докладчик даже из совершенно затертой темы сможет сделать интересный рассказ. В данном случае – это информация о разложенных посредствам auto граблей.

Во второй лекции первые 10 минут можно смело проматывать. Что довольно неожиданно, Майерс, в том числе, говорит и о Instruction Cache, чего я не замечал за другими докладчиками/статьями на эту тему. Ну и как всегда, лекцию пронизывает модная на данный момент мысль: массивы хорошо, все остальное так себе. Кстати, если кто-то не знает что такое False Sharing, то в этой лекции можно найти образцово показательное объяснение сего печального явления.

Миграция с Vim на Emacs

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

0509_Hacking Vim 7.2covТак что, я решил в дальнейшем использовать Vim исключительно для правки небольших текстов и конфигов, благо в любой *NIX системе он есть “из коробки”, а для чего-то большего использовать Emacs. Помня о том, что в стародавние времена мне очень сильно помогла книга Hacking Vim, я начали искать что-либо не менее полезное про Emacs.

lrgК сожалению, на практике быстро выяснилось, что чего-то на столько же выдающегося про Emacs никто не написал. Тем не менее, достойная книга есть, это – Learning GNU Emacs, 3rd Edition. Ее нельзя назвать на столько же интересной и полезной, т.к. в ней маловато информации обо всяческих трюках но в любом случае очень достойно. В итоге довольно быстро дочитал до раздела про ELISP, и бросил, т.к. вроде все понятно и удобно стало. Как захочу улучшить конфиг собственными функциями – дочитаю

Если захотите научиться пользоваться Vim либо Emacs, очень-очень рекомендую эти книги. Не так страшен черт, как его малюют, а удобств ну просто море

Заметки везде и всегда

Screen Shot 2014-05-26 at 21.31.15  Это удивительно, но Microsof таки сумел выпустить продукт, который не хочется немедленно развидеть! По началу я хотел было написать про два продукта, так как на первый взгляд OneDrive очень не плох. Но это только на первый взгляд, а на практике OneDrive отказался синхронизировать мои файлы, как это не прискорбно, но Майкрософт продолжает штамповать откровенное говно. Continue reading

PHdays 2014 глазами разработчика

Сегодня закончился второй день конференции PHdays, на которой мне удалось побывать благодаря Владимиру, за что ему огромное спасибо! Я не буду рассказывать о содержимом конференции и представленных докладах, все это можно найти на соответствующем сайте. Здесь же хочу показать немного картинок и рассказать об ощущениях от самой конференции. Continue reading

Ранний доступ к новым книгам о Scala

Я, надо признать, остался не равнодуным к Scala. Мне действительно нравятся возможности, которые дает JVM, а Scala, как ни ругай ее – самый продвинутый язык для этой платформы. Поэтому, новости связанные с этим языком я отслеживаю и почитываю.

Так вот, в O’Reilly открылся ранний доступ к двум новым книгам по Scala. Сам, пока, книг не читал, но выглядят довольно заманчиво, так первая версия Programming Scala мне очень понравилась.