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

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

Максимально кроссплатформенное ПО :)

Всего сколько лет назад о кроссплатформенном ПО большинство разработчиков не задумывалось вовсе, а те кто сталкивался с подобной задачей в основном занимались разработкой решений которые работали на Windows и UNIX. Это были (и есть) крупные серверные системы, системные библиотеки, редакторы, и прочее узкоспециализированное ПО.
Но, все течет, все меняется, Windows и Linux (с Гномом или КДЕ) уже не единственные платформы с которыми работает “обычный пользователь”. В последнее время появилось большое количество платформ для обычного пользователя и это никак нельзя игнорировать.
К сожалению, даже сейчас, большая удача если ПО работает на чем-то кроме Windows. А уж если такое приложение еще и выглядит прилично… Но это уже совсем редкость.
Continue reading