В компанию "Связной Логистика" (московский офис на метро Автозаводская) для работы на двух проектах требуются разработчики. Мы готовы взять как профессионалов, так и людей среднего уровня для обучения.
Оба проекта находятся под NDA, поэтому здесь я могу лишь вкратце описать нашу деятельность:
* Мы используем Microsoft .NET Framework 4.0, язык C#, без каких-либо enterprise решений от Microsoft или других вендоров.
* Разрабатываем под Visual Studio 2010 с обязательным использованием ReSharper.
* В качестве DBMS используется Microsoft SQL Server 2008, но исключительно для обработки ANSI SQL запросов и простейшей master-slave репликации.
* В качестве системы контроля версий используется SVN.
* Для баг трекинга используем Atlassian JIRA.
* Оба проекта являются клиент-серверными решениями и будут иметь более 5000 инсталляций фронта для продавцов на кассах, 100 инсталляций бэкофиса для бизнеса в офисе, 2-3 инсталляции серверной части.
* Все программисты решают все задачи: серверный код, GUI, работа с БД, интеграция с внешними системами, разработка юнит тестов, и так далее.
Из плюсов, которые можно получить при работе над этим проектом:
* Разработчику любого уровня мы гарантируем серьёзный и качественный профессиональный рост. Будет огромным плюсом, если вы тоже сможете передать нам свой профессиональный опыт.
* Динамичная, не обременённая бюрократией и бесконечными согласованиями, творческая работа в маленькой команде профессионалов.
* В нашем проекте нет плохих решений. Здесь не приходится копаться в плохо спроектированном коде и тратить время на ошибки, исправление которых неожиданно приводит к появлению новых. Весь код хорошо документирован и покрыт автотестами.
* Мы используем рефакторинг в смысле рефакторинга, для чего проводим постоянные и продуктивные code review. На всё это выделяется достаточное количество времени.
* Работа над интересными проектами, которые должны стабильно обслуживать клиентов 24*7*365.
* Свободный график работы, приходим на работу до 13 часов; стандартный рабочий день.
* Кофе машина, результат работы которой можно преобразовывать в код.
* В офисном здании есть тренажёрный зал, в котором вы сможете подстраховать своего непосредственного руководителя, чтобы на него не упала штанга.
Из трудностей:
* Мои code review очень жёсткие; в том числе я проверяю, правда ли написана в джавадоках.
* Разработчику среднего уровня будут ставиться более простые задачи, которые, скорее всего, не потребуют модификации серверного кода или реализации многопоточных решений с нуля.
Различные требования, которым вовсе не обязательно полностью удовлетворять:
* Хорошие знания одного, а желательно двух языков программирования со следующими приоритетами: Java, C#, C++.
* Хорошие теоретические знания и богатая практика разработки многопоточного кода.
* Полноценная база по структурам данных и алгоритмам.
* Базовые знания ANSI SQL для написания SQL запросов.
* Понимание полезности ООП, GoF и других паттернов, автоматического тестирования, Refactoring, Code Review, документирования кода, Agile методологий.
* Нужен человек, ориентированный на качественный результат работы, который умеет добиваться этого результата.
* Мы любим свою работу и получаем от неё кайф, и поэтому ищем творческих людей, которые разделяют наше мнение.
Из условий:
* Есть полноценный соц. пакет.
* Испытательный срок три месяца.
* Разработчику среднего уровня, который подойдёт по итогам собеседования предлагаем
80 тысяч на руки (после вычета налогов).
* Хорошему разработчику с опытом работы на Java или C#, который подойдёт по итогам сложного собеседования предлагаем
100-120 тысяч на руки (после вычета налогов).
Если вы заинтересованы, то:
* Опционально: чтобы мы могли получить представление о вашем профессиональном уровне, пожалуйста, решите задачу, которая идёт в конце данной вакансии. Подчёркиваю, что решение этой задачи необязательно, но будет огромным плюсом.
* Присылайте резюме и решение задачи, на mborbot сбк maxus тчк ru
* Задавайте любые вопросы; я постараюсь ответить на них в силу своих возможностей.
С уважением,
Михаил
Задача.
Требуется реализация класса, аналогичного FixedThreadPool в Java, со следующими требованиями:
* Решение на Си++, Java или C#
* В конструктор этого класса должно передаваться количество потоков, которые будут выполнять задачи.
* Интерфейс класса должен предоставлять методы: bool Execute(ITask task, Priority priority) и void Stop()
* Интерфейс ITask должен содержать один метод: void Execute(), который вызывается в произвольном потоке.
* Тип Priority — это перечисление из трёх приоритетов: HIGH, NORMAL, LOW. При этом действуют такие правила: на три задачи с приоритетом HIGH выполняется одна задача с приоритетом NORMAL, задачи с приоритетом LOW не выполняются, пока есть хоть одна задача с другим приоритетом.
* До вызова метода Stop() задачи ставятся в очередь на выполнение и метод Execute() сразу же возвращает true, не дожидаясь завершения выполнения задачи; а после вызова Stop() новые задачи не добавляются в очередь на выполнение, и метод Execute() сразу же возвращает false.
* Метод Stop() ожидает завершения всех текущих задач.
* Мы не требуем идеального решения (мы вообще его не требуем

), но чем лучше вы решите данную задачу, тем большим плюсом это будет на собеседовании.