Представьте себе гипотетическую ситуацию, когда вы оказались в другой стране и без работы, а 22го сентября к вам домой приходили полицаи и интересовались, где вы находитесь, и возращаться немного сыкотно, хоть и ничего незаконного не делал. В такой ситуации при поиске работы можно совершить такую глупость, как взяться за большое тестовое задание, ведь и вроде вакансия хорошая и за него обещали заплатить. Что же может пойти не так.
6 марта мне написала рекрутер:
![](https://habrastorage.org/getpro/habr/upload_files/323/4ff/459/3234ff459a0e4b372c4ca4c3712dbe51.png)
Мы созвонились пообщались, мне предложили сделать тестовое задание, за которое обещали заплатить.
![](https://habrastorage.org/getpro/habr/upload_files/d4f/2cd/de5/d4f2cdde5c83379027b3bb506b8a7465.png)
Вакансия здесь https://telegra.ph/React-native-developer-02-15-2
Задание находится здесь https://github.com/mytonwalletorg/test-tasks но на всякий случай сделал скрины.
![](https://habrastorage.org/getpro/habr/upload_files/43e/50c/1d5/43e50c1d5652365c2d0a604b51839293.png)
![](https://habrastorage.org/getpro/habr/upload_files/50d/514/cba/50d514cba19e3c7f4dd21cdcd64132b1.png)
Изначально мне показалось, что за неделю я набросаю работающий прототип и этого будет достаточно, чтобы они оценили мои навыки и приняли решение, и я приступил к выполнению. Однако одно из требований — переиспользовать кусок js кода и запустить его отдельным процессом оказалось сложнее, чем я думал. В react native, на который и была эта вакансия, нет воркеров, как в браузере или ноде. Об этом я узнал когда закончил с UI и принялся портировать логику, которую необходимо было переиспользовать. В итоге я потратил почти еще столько же времени перебирая сторонние решения. Пробовал пакеты добавляющие воркеры, которые заброшены уже несколько лет и работют только с какой то мохнатой версией RN, пробовал библиотеку liquidcore, которую даже запустил под андроид, но в итоге она тоже оказалась заброшенной и с кучей проблем, смотрел в сторону в J2V8 для андроид, но насколько я понял, она выполняет только чистый JS, а все запросы к апи окружения нужно реимплементировать самому (вообще за рамками тестового задания), потом наткнулся на nodejs‑mobile, который хоть и не идеален, но хотя бы не заброшен и запустился на андроиде.
![](https://habrastorage.org/getpro/habr/upload_files/17a/ea7/6d6/17aea76d6168f80c10c956467f02aa4e.png)
В итоге я портировал необходимую часть кода, написал связующую логику между ней и сделанным до этого UI. У меня были сделаны экраны создания, добавления кошелька, главный экран со списком транзакций, бэкап 24 слов, и опциональные для этого тестового прием и отправка (иначе откуда возьмется список транзакций, который нужно продемонстрировать на главном экране, подумал я, и сделал их тоже).
Отправляю им результат.
![](https://habrastorage.org/getpro/habr/upload_files/e24/e67/2cf/e24e672cf1241701b655e05a66738d00.png)
На что получаю такой ответ
![](https://habrastorage.org/getpro/habr/upload_files/d3c/043/7d0/d3c0437d0c7a385534f102158bf21d27.png)
Очень сильно матерюсь, но стиснув зубы соглашаюсь добавить анимации переходов, всплытий и пр. Оказывается, пока я боролся с тем, как бы портировать их логику и запустить отдельным процессом, они добавили требование:
![](https://habrastorage.org/getpro/habr/upload_files/dca/74e/04f/dca74e04fd6907e788ee2ac53885aa59.png)
В итоге потратив еще 3 дня я отправляю им версию с анимированным интерфейсом.
![](https://habrastorage.org/getpro/habr/upload_files/17e/251/3c0/17e2513c0fe172fb5d80575a65f2cf29.png)
Спустя несколько дней договариваемся о созвоне.
![](https://habrastorage.org/getpro/habr/upload_files/d74/6e9/0a5/d746e90a5c72466dfcb12c5f1603b8cf.png)
И за час до назначенного созвона я получаю вот такое:
![](https://habrastorage.org/getpro/habr/upload_files/a65/d16/c0a/a65d16c0a9914da6c27264324a71c0cb.png)
![](https://habrastorage.org/getpro/habr/upload_files/5d1/bb2/efb/5d1bb2efb975873304d1e88a801cb0ea.png)
Часть претензий возможно и объективна. Я действительно срезал какие то углы из‑за и без того большого объема работ для тестового задания (не выделил жирным какие то слова например). Но некоторые пункты — это опциональные фичи, согласно заданию, и я их не делал. Цель тестового — оценить умение писать код, а не сделать готовый к продашену продукт. Можно месяцами полировать детали, это явно за скопом тестового задания. А самое главное, что мы уже договорились о созвоне, и это просто скотское отношение, вот так отменять его в последний момент под надуманными предлогами. В итоге желания у меня с ними сотрудничать уже не было, я думаю, в процессе работы отношение там такое же, и я попросил обещаной компенсации.
![](https://habrastorage.org/getpro/habr/upload_files/c57/6bb/0d8/c576bb0d8b610a5a612a43e536436c9c.png)
Ответ, который я получил, вы видите выше. Я понимаю, что айтишка загибается, что программистов уже как собак нерезаных, да и вообще скоро гпт отправит нас добывать еду из мусорных контейнеров, но это все равно скотство, вот так эксплуатировать людей без работы, находящихся в уязвимом положении. Я мог бы потратить две недели интенсивной работы, чтобы откликнуться на сотню‑другую вакансий вместо этого.
Вывод, сам дурак, не нужно браться за тестовые, которые занимают больше 20минут, а лучше вообще не браться за них, особенно от этого работадателя. Не повторяйте моих ошибок.
Ссылка на код https://github.com/Tohntobshi/tonWalletRN
P. S. Прошу прощения за возможные ошибки, писал на эмоциях, еле сдерживаюсь от матерных слов в сторону данного работодателя.
UPD:
Со мной связались из TON Foundation и выплатили эту сумму. Очень великодушно с их стороны, особенно учитывая, что они вроде и не связаны с вышеупомянутой компанией, за что им спасибо.