← All posts tagged IT

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

Например, когда я работал в компании, разрабатывающей ПО для риэлтеров, нам нельзя было называть свойство объекта словом property, потому что property — это квартира/дом/офис, т.е. название бизнес-сущности. А у объекта не properties, а fields.

А ещё раньше я работал на компанию, которая писала CRM для массовых ивентов. Там термин event тоже был занят под бизнес-сущность, поэтому в контексте программирования говорили не event, а signal.

Я коллекционирую такие штуки.

А у вас такое случалось?
janPona
DevsKiller работа IT Эпилог.

( третья часть juick.com )

Галера Lumenalta, куда я так и не пошёл, потому что выбрал "Сквоттинг и Фишинг", прислала мне результаты моего тестового задания:

Hi Volodymyr, good evening. Some numbers of your results. The general score was 71% (Better than 75.01% of other candidates)

JAVASCRIPT — 97% (35 / 36)
REACT — 95% (19 / 20)
SQL — 25% (5 / 20)
React Hooks — 95% (19 / 20)
Enzyme — 95% (19 / 20)
MySQL — 25% (5 / 20)
React Testing Library — 95% (19 / 20)
Promises — 100% (16 / 16)
Async — 100% (16 / 16)

Section 1
1 hr 12 mins 52 secs
Suggested: 1 hr
19 / 20
95.00 %

Section 3
48 mins 44 secs
Suggested: 1 hr 15 mins
16 / 16
100.00 %

Section 4
39 mins 33 secs
Suggested: 25 mins
5 / 20
25.00 %

--------

М-да, практически не писал я SQL-запросов на прошлой работе. Сказывается.
janPona
работа IT Поиск работы завершён. Принял оффер в инфраструктурный отдел компании "Сквоттинг и Фишинг". Дали друг другу пару недель на юридические вопросы. Иду открывать польское ИП.
janPona
работа IT Прособеседовался в "Сквоттинг и Фишинг". Это уже второй раунд.

О первом писал:
juick.com

Ну тут уж меня втроём собеседовали, если не считать зрителей. Два серьёзных технаря (один из них архитектор) и people partner.

People partner выдала достаточно общую базу вопросов:
— что мотивирует
— что демотивирует
— вилкой в глаз, или дроп всех баз
— кем через 5 лет
— почему мы
— почему ты
Итд.

Ответил на всё максимально честно и развернуто.

Кстати, запомнился вопрос "какие были конфликты на работе". Было, что рассказать, не стал молчать:)

(Тем временем вернулся хозяин арестованной собаки из juick.com долго курил на балконе и звонил собачьему адвокату)

Архитекторы задали кучу вопросов, в основном, про секьюрити, XSS, санитайзинг, платежные системы, сессии, куки, фреймы, API.

Интересная дискуссия была о semver.

Наконец перешли к долгожданному десерту. Ура, лайвкодинг!

Попросили покритиковать код, который раз в 10 секунд шерстит какие-то данные из базы. Там были проблемы с конкурентностью, памятью, производительностью, стабильностью и т.д. Я обожаю такие лайвкодинг-сессии, когда, во-первых, надо думать больше, чем педалить, а во-вторых, когда задача максимально приближена к боевым условиям.

По ощущениям, все остались довольны друг другом.

Опять же, взяли 5 дней на подумать.

Но, поскольку HR начала задавать более интимные вопросы (про мой дедлайн, про мой налоговый статус, есть ли у меня кто на стороне), я догадываюсь, что меня рассматривают всерьёз.

Компания классная, очень классная. RnD там очень продуманно организован. Репутация в интернете у них тоже нормальная, особых залётов (как, например, у "Назовите 6 цифр из СМС", выступающих ответчиками в судах про мошенничество и истцами — про защиту репутации) тоже нет.

UPD. Буквально сейчас, когда я пишу этот пост, "Сквоттинг и Фишинг" решили сократить время принятия решения и выслали мне оффер.
janPona
DevsKiller работа IT (первая часть: #3061451)
(вторая часть: #3061453)

И, наконец, на сладкое у нас был SQL, а именно MySQL.

Тут уже ничего в IDE не склонируешь, тут уже надо запросики писать. Ручками. Времени осталось — 40 минут.

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

"Найти всех доярок-рекордсменок и всех подоеных ими коров, отсортировав по имени коровы и годовому числу надоев, где дояркой-рекордсменкой считается доярка, надоившая за все годы в среднем больше, чем все доярки колхоза в среднем за 1968 год. Кроме того, бригадирок звена поместить наверх доски почётов"

Там не про доярок и коров, но этим текстом я просто иллюстрирую класс сложности запроса. Вроде и не сложный, но дико нудный и после полутора часа программирования вгоняющий в смесь тоски, паники и обречённости.

Итак, читаем ещё раз: "Найти всех доярок-рекордсменок...", о-о-о чёрт... "среднемесячных удоев за отчётный год..." бля... "...бригадой считается звено...", бу-э-э-э...

Короче, не стал заморачиваться и в полубесознательном состоянии набросал решение через CTE.

Ну, типа "WITH средниеУдои AS (SELECT AVG(удой) AS срУдой FROM дойка_коров..." и т.д. А потом ", дояркиРекордсменки AS (SELECT д.* FROM доярка д INNER JOIN дойка_коров дк..."

Не хочу вспоминать. Больно до сих пор. А потом из всех этих CTE джойнами и такой-то матерью вытаскиваем нужные председателю колхоза данные.

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

Да вот только данные не сходились с тестовыми, хоть плачь!

Причина была в том, что я до конца не осознавал, что у меня в запросе по актам дойки, совершённым за 1968 год (необходимом для получения среднемесячных удоев за год) WHERE-выражение для фильтрации по году было написано с ошибкой. А всё остальное — идеально правильно (ну, и, разумеется, совершенно по-идиотски с точки зрения оптимизации).

Понял я свою ошибку за полторы минуты до конца срока. Задание делал ранним утром, чтобы никто не отвлекал.

А теперь представьте картину. Спавшая до этого в соседней комнате Птичка, просыпается от моих криков: "Ну! Ну! Сука! Не убивай меня! А-а-а-а-а, на тебе, на, сука, умри!!! АААА не уибиваааааййй!!! Сдохни!"

Это я боролся с жутко тормозным интерфейсом тестовой системы, который по 10 секунд запускал каждый запрос. А может быть со своими тормозными мозгами. А может, и скорее всего, с тем, как по-дебильному был написан мой SQL-запрос.

Но я всё-таки успел исправить и нажать чёртову кнопку Submit and Finish на последней секунде до конца срока.

Вот так это было. Буквально на последней секунде.

В итоге, я остался доволен всеми заданиями. Но, конечно, ограничение в два часа это и эйджизм, и эйблизм сразу, и при желании можно их за это по американским законам засудить. Эйджизм — потому что вдруг я дедушка старенький, печатаю медленно, думаю ещё медленнее. Эйблизм — а вдруг я вообще слепой, сижу в brltty, дайте два дня как минимум. Или я Стивен Хокинг. Стивен Хокинг бы не прошёл, разве что с Neuralink, да и то не факт.

Ну, в общем, подождём, чо скажут.

Зарплата у них там обещается по результатам тестирования от 5 до 8 k$, претендую на 8.

Предыдущие части — по тегу juick.com
janPona
DevsKiller работа IT Часть вторая.

(первая часть: #3061451)

На второе у нас тоже был JavaScript. Постараюсь не сильно спойлерить, но там задание было в том, чтобы написать асинхронный пул воркеров. Не тех воркеров, которые прямо worker thread, а просто функций, которые выгребают из очереди асинхронные таски, выполняют их и так по кругу.

Тут тоже было несколько уровней сложности, от "просто реализуй ТЗ" до "сделай охуенно и оптимально", но в этот раз оба уровня были досконально покрыты юнит-тестами.

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

Это всё у меня нашлось, поэтому на задачу вместе с полировкой кода ушло минут 20.

Конец второй части. Остальные части — по тегу juick.com
janPona
DevsKiller работа IT Итак, галера Lumenalta предложила мне прикольное тестовое задание на позицию фуллстека.

Платформа для тестирования — DevsKiller.
Тебе дают комплексный тест из трёх заданий. Время на выполнение — 2 часа. Ставить на паузу нельзя. Пробовать повторно — по-моему тоже нельзя.

1) JS React
2) JS core (конкуррентное программирование)
3) SQL

Очень понравилось что два первых задания можно клонировать гитом и спокойно себе решать в IDE. Только нельзя больше никуда пушить, кроме как на их сервер. То есть, они не против, чтобы в этих заданиях кандидаты пользовались ИИ-помощниками. Хотя, сразу скажу, что задания подобраны так, что ИИ-помощники особо там не помогут.

Итак, задание первое. React.

Есть уже написанное веб-приложение на простом джаваскрипте, без типов. Есть эмулятор бекенда. Также имеется набор юнит- и e2e-тестов, покрывающий основной функционал. Нужно разобраться в том, какого чёрта все эти тесты падают, а также пройтись по списку рекваерментов и внимательно проверить, что из непокрытых тестами рекваерментов реализовано, а что нет. И насколько вообще оно праильно там реализовано.

А в самом коде повсеместно напартачено. Где-то вместо данных передаётся пустой массив. Где-то — захардкоженная заглушка, где-то какой-то виджет не так нарисован, где-то логика не до конца реализована. И вот этот фронтэнд в состоянии "тысяча мелких порезов" нужно отрефакторить мало того, чтобы тесты позеленели, но и приложить к нему любовь и заботу, стать его пользователем и продактом, довести до ума.

Времени ушло на это примерно час, но это не впустую потраченный час.

Мне просто дико понравилось это задание, 5/5!

ИИ с таким не справляется, потому что у ИИ нет главного — воли, страсти, чисто человеческого любопытства. Он не выйдет за рамки спецификации, и поэтому не отыщет скрытые алмазы в куче говна.

Конец первой части. Остальные части — по тегу #DevsKiller
janPona
мова язык работа IT Интересно в этом плане вот что. Я ведь после 2022 года ещё ни разу не искал работу. А интернет пестрит случаями, когда HR отменяет кандидата публично из-за его нежелания переходить на украинский.

Так вот, ничего подобного я не наблюдаю!

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

Ещё немного, и к домайданному уровню вернёмся: кто на каком думает, тот на таком говорит.

Это, кстати, самый лучший шанс украинизации, потому что из смеси украинского с русским родится лет через 200 новый язык, который, скорее всего, будет больше походить на украинский. Но даже если образуются два языка — просто украинский и украинский диалект русского (шо-то типа одесского чи слобожанского, тилько ще ближе до украинского), это уже не будет формально ru_RU, а будет ru_UA, на который можно смело ставить державный копирайт и заводить соответствующий ДСТУ.

Лет через двести, когда мы станем своего рода бельгией, а РФ — своего рода голландией и забудем, из-за чего убивали друг друга.

И только мы, высоколобая диаспора, как сейчас канадская, будем с экспатским снобизмом поправлять как укро-русских, так и укро-украинцев, задалбыая их настоявшимися к тому времени архаизмами своей островной заповедной речи.
janPona
работа IT Отказался от предложения работать в ООО "Треф и Кашрут". На душе полегчало. Меньше головняка в 100 раз. Там надо было в качестве лида (а на самом деле, архитектора и девелопера, на которого повесят всех собак за проёбанные сроки) с нуля построить систему точек продажи для супермаркетов и ресторанов с нагрузкой в 50 миллионов продаж в месяц. Я озвучил сначала с дуру сумму $6500. Они вообще $4000 предлагали, но типа сказали, что поторгуются. Ага, щас. Я на такое и за 10К не пошёл бы.

Хотя, возможно, я проебал свой звёздный шанс. Шанс поработать год на убой с овертаймами и нервами, за три копейки.
janPona
Россия Кипр инсайд IT "Израиль

Сегодня общался с компанией типа Uber, хозяева в Израиле, офисы в Великобритании и на Кипре.

HR-менеджер "prosto z mosta" (польск. "с места в карьер") вывалила мне инфу, что там на Кипре сидит целая команда, состоящая из "хороших русских", уехавших из России в 2022, ибо они не "хотят иметь ничего общего с преступным путинским синдикатом". Я взял время на подумать, ибо не далее как месяц назад я лично общался с одним известным старым оппозиционером, представителем штаба Навального, САМЫМ хорошим русским. Да что там, с Сергеем Борисычем Пархоменко. И, мягко говоря, я понял, что когда хорошие русские придут к власти, пизда наступит буквально всем и каждому — пизда не меньшая, чем когда у нас к власти пришли "правильные украинцы". Да и вообще.

Компании даю кодовое имя "EZWozchik", и до 2022 в России она работала превосходно. Ну а потом... Ну что, объявили о своём закрытии в РФ, свернули офис, вывезли сотрудников. Но я в жизни своей не поверю (и это моё частное мнение), что израильские владельцы добровольно обрежут себе настолько жирный кусок рынка, как РФ. Скорее всего, сменили вывеску и продолжают пахать ниву российского извоза. Могу ошибаться, это моя гипотеза, не основанная на доказательствах.

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

Подводя итог, с израильским заказчиком я зарёкся работать, потому что там сплошные наёбки и "нюансики".

Кстати, вот, и "Галахические НПЗ" с их $8500 для Node Lead оказались полунищей шарашкой, которые испугались, что вдруг это ж столько и придётся платить. И принялись переписывать вакансию в сторону повышения требований и снижения зарплаты. Наверное, слишком велик был наплыв лохов-кандидатов, и они поняли, что продешевили на целых пол-шекеля.

Надо понимать, и я понял. Есть два чётких "нет": Израиль, Кипр.

Для вас же, подписчики из РФ, кстати, это два чётких "да". Там особо на паспорт не смотрят, и это может стать неплохим причалом, ежели работу ищете.
janPona
ТЦК кстати IT Украина Собеседовался я много, просто так общался тоже немало. Что я могу сказать. В современном украинском IT среди мужиков уже процентов 90 съёбиков. Раньше даже по моим скромным оценкам было около половины. Эвакуационная индустрия работает как часы и курируется менеджментом любой IT-компании.

И правильно.
janPona
работа IT События развиваются стремительно. "Сквоттинг и Фишинг" сначала попросили 5 дней на подумать. А в итоге через пять часов позвонили и назначили следующий этап собеседования на понедельник. Да всё и так понятно, я им понравился.
janPona
работа IT Только что прособеседовался в компанию "Сквоттинг и Фишинг" на Node Senior.

Те же $7000, работа спокойная. Писать библиотеки для поддержки инфраструктуры, рефакторить код, контрибьютить помаленьку в опенсорс. Люблю такое.

Вопросы были, в основном, стратегические, про ООП-дизайн, про тесты да всякие индексы/транзакции.

Лайвкодинг был из серии: дан интерфейс API. Как его надо было правильно написать, чтобы можно было поддерживать дорогие годы с наименьшим количеством проблем?

В общем, они там няшки, и химия между нами произошла. Жду ответа
janPona
работа IT ООО "Назовите 6 цифр из СМС" меня не захотело. В моих ответах по Go сквозила низкая квалификация. Ну и пусть.

Зато завтра у меня будет собеседование на должность Node.js инженер в архитектурный отдел доменного регистратора. Известная, кстати, компания — "Сквоттинг и Фишинг". $7000 предлагают.

"Вези меня, мразь" с их астрономическими зарплатами что-то пока молчат и даже на техническое собеседование пока не зовут.

"Треф и Кашрут" послезавтра хотят провести со мной формальное техническое собеседование, хотя по их плотоядным лицам уже видно, что они меня вожделеют. Но без взаимности.
janPona
работа IT внезапно Зовут на следующей неделе пособесоваться в компанию-гигант. Пока не могу сказать настоящее название. Сфера услуг, но не "Убер". Назовём её кодовым именем "Вези меня, мразь" Ltd.

Go + TypeScript + AWS. Зарплата 700 евро в день, т.е. 15400 евро/мес.

Процесс найма заключается в тестовом задании, затем часовое техническое интервью, затем часовое культурное интервью.

Когда я увидел зарплату, первое, что я подумал — это разводняк.

Но потом увидел реальные отзывы на линкедине о рекрутере, и понял, что это реальный человек.

Потом почитал статистику зарплат, и понял, что это вполне реальные цифры. А вот те $6000-7000 в месяц, которые предлагают средние продуктовые фирмы и галеры, — вот это как раз и есть конкретный развод.

Клянусь поделиться всеми деталями после офера. Ну или после отказа.
janPona
работа IT Прособеседовался в ООО "Назовите 6 цифр из СМС". Очень матёрые технари, дядьки за 40, вопросы задавали не дурацкие, но иногда сложные. Кажись, меня процентов на 40 завалили, но — поживём увидим.

Интервью было на русском языке, с очень восточно-украинскими интонациями, прямо аж "Донбасс порожняк не гонит". Что радует. В доску свои ребята. Там 100% или харьковские или донецкие.

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

Честно, рынок реально пугающе просел. За $7000 я буквально рву жопу в поисках. Поэтому мне пофиг, какая там у фирмы репутация. Есть контракт, есть голова на плечах, есть, в конце концов, понятие испытательного срока. Прорвёмся.
janPona
работа IT Так, блядь. Мировые рынки валятся. Видно, надо принимать оффер даже от СМС-спамеров, бо потом никто и столько не предложит.

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

Интересно, предвидел ли он то, что происходит в эти дни...
janPona
тик инсайд IT Но завтра у меня интервью в другой компании — "Треф и Кашрут".

Почему я придумал именно такое кодовое название для фирмы? Очень просто. Это фирма, состоящая из сплошных противоречий.

Посудите сами:
1. С одной стороны, это стартап, где надо АБСОЛЮТНО ВСЁ писать с нуля. С другой — это компания с 25 годами успешного пребывания на рынке Израиля, закостеневшее в легаси, работающем на Java 1.0.

2. Как описал мне директор посреднической галеры, через которую нам предлагается сотрудничать, топ-менеджмент компании состоит из двух израильтян, даже цитата: "один абсолютно адекватный, другой абсолютно неадекватный". Хороший дуэт...

3. Сам директор посреднической галеры — гражданин Иордании (да-да!), мой бывший коллега, сторонних Башара Асада (буэ-э-э...), всю свою жизнь проработавший на вражеское государство Израиль, бок-о-бок с нашим шефом, советским израильтянином...

Что это, как не сплав несопоставимых сущностей!

Туда тоже не хочу. Кидаловом пахнет за километр. Видимо, рынок таки мёртв.