Friday, July 19, 2019

О найме в большую компанию

Вступление

Произошло два важных события: 
  • у меня появилось желание сделать Калининград основным местом моего проживания;
  • мои ученики готовы пойти на свою первую работу по специальности фронтенд.
И я начал искать компанию в Калининграде, с которой можно построить долгосрочные рабочие отношения и трудоустроить своих учеников. Поговаривают, что среднестатистический работодатель в Калининграде - это адский звиздец. К сожалению, в 2019 году слухи нашли частичное подтверждение. 

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

Лучшая в мире

Конечно же, я не мог пропустить эту вакансию:



Пару лет назад в личной беседе была озвучена информация о зарплате 60-70 тыс. рублей в месяц для разработчиков высокого уровня (т.е. максимум - ипотека). С тех пор зарплатная вилка выросла, по крайней мере так указано на сайте. Прям мечта для Калининграда:


Ура! Я приглашен на собеседование.

Собеседование

Собеседование длилось два часа. Это было чисто техническое собеседование. Мы говорили о javascript, основах программирования, технических знаниях. Передо мной находились люди, мои потенциальные будущие коллеги, начальники и/или подчиненные. Люди, с которыми мне предстояло видеться и проводить много времени вместе каждый день в будущем!

В конце собеседования меня спросили:
- На какую зарплату Вы рассчитываете?
Я ответил:
- На ту, которую Вы указали в объявлении вакансии.
Вопрос:
- А сколько вы получаете сейчас?
Я ответил:
- Примерно столько же и получаю.

В конце мне представилась возможность задать вопросы, и я спросил:
- А каким вы видите своего будущего коллегу?
Ответ был примерно таким:
- Самое главное, чтобы справлялся с задачами

Замечания к собеседованию

На собеседовании не было сказано стандартных фраз "Хотите ли вы воды?" или "Если захотите чего-нибудь - просто скажите...". Это было самое сухое и безжизненное собеседование в моей жизни. Вопрос о зарплате - это отсутствие такта или проверка реакции на прямой вопрос. Не знаю, что в тот момент было у людей на уме.

Очень важно во всей этой беседе то, что в большой компании самое главное качество для сотрудника - совместимость! А никак не умение справляться с задачами.



Отсутствие улыбок и "самое главное, чтобы справлялся с задачами" насторожили.

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

Результатом собеседования стало тестовое задание. Скрин широко разгулялся по интернету, поэтому пусть будет как есть:



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

Не было озвучено никаких результатов собеседования. Никакой оценки. Вообще. Кроме того, очень удивил тот факт, что 2+ года коммитов на GitHub "нам ничего не скажет :)"

Инсайдерская информация

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

Скрин:



Из переписки видно, что инсайдерская инфа ложная. Действительно, инсайдерский источник информации - это не то, на что можно опираться. Поэтому оставим. Или нет?

Принципиально нет

Нет. Все-таки есть вопрос. "Если нужны разработчики и есть деньги, почему бы не пригласить на испытательный срок?"

Скрин, в котором прекрасно все:



Список риторических вопросов:

  • "Мы готовы были бы принять в компанию, но нам не хватало уверенности в тебе. Поэтому предложили творческое задание. Мы предлагаем его не всем" - тестовое задание должно выявить умение мыслить широко и системно или добавить уверенности во мне?
  • "Денег на разработчиков нам не жалко, уж поверь))". Но договориться об оплачиваемом творческом задании или испытательно сроке мы не можем? 

Вам нужен психолог


Одним прекрасным летним вечером мы "курили ну кухне" с директором одной известной компании о жизни, пили чай и вели задушевный диалог.

Я: - А знаешь ли ты, мой дорогой друг, что нынче в Москве востребованы психологи?
Д: - Нет, расскажи
Я: - Не знаю, насколько это ново, но в столице бизнесмены при приеме на работу нанимают психолога, чтобы тот уговорил кандидата работать за меньшие деньги.
Д: - Ух ты. Прикольно. 10 тыс в месяц на зарплате сотрудника - это 120 тыс. рублей прибыли в год. Классная схема! А сколько услуги психолога стоят?
Я: - Не знаю. Но знаешь, я тут подумал. А психологу можно и не платить?
Д: - Как это?
Я: - Психолога можно нанять в штат, но сделать его услуги для сотрудников платными. Т.е. если сотрудник недоволен сложившейся жизненной ситуацией, мама-психолог ему с радостью поможет.
Д: - Слушай, а ведь это гениально! Я разберусь с этим вопросом подробнее
Я: - Пожалуйста 🙂

Выводы

Дорогие ученики, будьте пожалуйста внимательны и вдумчивы. 

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

Постарайтесь посмотреть со стороны на ситуацию. Задайте себе вопросы: "Действительно ли мне подходят эти люди?", "Хочу ли я с ними проводить весомую часть своей жизни?", "Действительно ли мы сможем стать крутой командой и создать крутой продукт?". Если у вас остались вопросы о найме, вступайте в telegram чат менеджеров по подбору персонала @hrchatv2 и смело задавайте вопросы обо всем.

Комментарии профессионалов

«Я бы сказала так: не профессиональными являются два момента - то, что кандидата не попытались расположить к компании и снять напряжение, сделав беседу непринуждённой, второе- то, что попросили сделать тестовое задание, при этом не дали обратной связи, что является неуважением к кандидату, который потратил личное время, выполняя задание и работодатель, даже не намереваясь нанять такого кандидата, обязан дать обратную связь, в идеале если конструктивную»

«Во-первых, интервью это с психологической точки зрения заведомо некомфортная ситуация для кандидата. Даже если уговорить себя что это просто деловые переговоры, все равно подсознание прекрасно понимает: меня оценивают. При этом, оценивают по неизвестным кандидату критериям. А человеческий мозг так устроен, что неизвестное пугает его (отсюда развилось магическое мышление - стремление хоть как-то объяснить непознаваемое). Это все рождает когнитивный диссонанс, который и вводит кандидатов в такое некомфортное состояние.

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

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

Благодарности

Этот пост является результатом работы целого коллектива. Разобраться в ситуации, отредактировать и оформить мне помогли замечательные менеджеры по подбору персонала из telegram чата @hrchatv2
Директор одной известной компании предпочел остаться инкогнито.

Объявление

Уважаемые владельцы IT-компаний. Если у вас есть возможность и желание принимать на работу программистов с расчетом на долгосрочное сотрудничество, я очень хочу с вами познакомится. Вступайте в чат @hrchatv2

Видео от Феоморта

Невероятно. Параллельно с написанием этого поста один мой знакомые записал вот это видео. 5 минут, много мата и мысли о найме. У него прекрасный голос, вы точно не пожалеете, что потратили эти 5 минут своей жизни на этот видеоролик!


Ссылки


Saturday, July 6, 2019

История events4friends и планы по развитию сообщества

В начале 2018 года появилась идея планировать мероприятия заранее. Цитата из поста №1«У меня есть календарь, в котором я записываю все мероприятия, которые хочу посетить. Я хочу делится с друзьями событиями в удобном формате.»

Через несколько дней интерфейс был улучшен и об этом написан пост №2 

В начале 2019 года сайт был переписан на react. Актуальные исходники находятся в новом репозитории на Github. Сайт выглядит так:





Чат


Чат events4friends является де-факто общественным пространством, поэтому на него распространяются правила поведения в общественных местах и законодательные нормы Российской Федерации. В чате работает бот, который вводит нового участника в курс дел.
В остальном, в чате больше нет никаких правил и ограничений! Рай и прямая демократия 🙂

В закрепленном сообщении чата список событий с сайта. Пример такого «закрепа»:




Планы


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

Некоммерческая организация «Право на город» предоставила нам свой публичный календарь. Теперь на сайте два календаря:
  1. Право на город
  2. events4friends
При первом открытии сайта пользователю будет предоставлена возможность выбрать сообщество, мероприятия которого интересны посетителю. При последующих посещениях сайта пользователь будет сразу видеть только мероприятия интересующих его сообществ.

Никакого спама и рекламы, а только полезная информация (что, где и когда) на нашем сайте events4friends.ru 💥

Thursday, July 4, 2019

Выложить OS X приложение в App Store

Нативное приложение собрано с помощью технологии NW.js
Этот пост - отчет о пошаговом исполнении инструкции:
Mac App Store (MAS) Submission Guideline

Начало работы

Проверил, что установлен последний XCode и оплачен developer аккаунт по инструкции:
MAS: Initial requirements

Установка сертификатов

Понадобится два сертификата: для подписи приложения и для подписи установщика
MAS: Requesting certificates

Создать приложение в сторе

Создать приложение для macOS:


MAS: Registering a new app on the MAS


Упаковка приложения

Этот пункт выполняется с помощью команды 'node NW.js' . А вот и нет. Для OS X это решение не работает.


Иконки приложения

MAS: Installing your app icon
Это сделано


Настройка info.plist

MAS: Configuring Info.plist
Это сделано


Настройка дочерних приложений 

MAS: Configuring children apps
Это сделано


Подпись приложения

MAS: Signing the app
Это сделано


Загрузка исходников

MAS: Uploading the binary
Без сертификата Mac Developer Installer не работает.
При загрузке происходит проверка архива и возникают ошибки. Пример:



Не работает


Все заново


Для сборки приложения для Mac Apple Store есть готовое решение nwjs-macappstore-builder и оно сработало:




Дальше предстоит проверка приложение и первая версия.
Еще пока не конец.

Monday, June 24, 2019

Установить HTTPS для сайта

В Википедии написано, что HTTPS - это расширение протокола HTTP для поддержки шифрования в целях повышения безопасности. Данные в протоколе HTTPS передаются поверх криптографических протоколов SSL или TLS.

Установка HTTPS - это не тривиальная задача, несмотря на то, что в 2019 все стало намного проще и дешевле. В данном посте будет рассказано об установке HTTPS с помощью Cloudflare.


Зачем нужен HTTPS?


Без SSL сертификата сайт часто не отображается в Safari на телефонах iPhone:



Также без HTTPS бессовестные операторы связи (такие как Мегафон) имеют возможность встроить свою рекламу на сайте!




Добавить домен на сайт Cloudflare


Подразумевается что у вас уже есть аккаунт на сайте https://www.cloudflare.com/
Необходимо добавить свой сайт. Интерфейс Cloudflare довольно удобен.



Затем необходимо для своего домена сменить name-сервера


Изменить name-сервера


name-сервер или DNS сервер или ns-сервер - это сервер доменных имен. Первым делом необходимо изменить адреса. Интерфейс Cloudflare подсказывает что надо сделать:



На сайте, необходимо произвести изменения. В моем случае интерфейс выглядит так:



Теперь необходимо подождать пока изменения вступят в силу.
Через некоторое на почту приходит уведомление о смене name-сервера:




Создание SSL сертификата


На вкладке "Crypto" необходимо сгенерировать SSL сертификат. Если все сделано правильно, во всплывающем окне появятся сертификаты:



Теперь сертификаты можно и нужно сохранить в файлы origincert и privatekey соответственно.


Установка сертификата на сервер


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



И ждем, когда установят и еще некоторое непродолжительное время, когда действия SSL сертификата вступит в силу.


Еще пару настроек Cloudflare


Установить:



И еще:



И еще:



Это самое простое и минимальные действия.
Теперь ссылка начинается с «https»


Не пугайтесь


Если вы открываете сайт и видите такой экран:



Это означает, что сертификат на сайт еще не установлен.


Подключить поддомен


Например, у меня есть сайт gsgusev.ru и второй сайт на поддомене info.gsgusev.ru. Для работы поддомена достаточно на сайте Cloudflare добавить DNS запись "info".




Итого


Сертификат установлен на мой сайт: https://vadimcpp.ru/


Дополнительно на сайте https://www.ssllabs.com/ssltest/  можно проверить надежность сертификата. Пример проверки для моего сайта:



Список сайтов, для которых подключен SSL:



Sunday, June 9, 2019

Техническое задание на изменение сайта gsgusev.ru

«Пришедшая в голову идея еще не материальна. Записанная идея уже начала реализовываться.»

Техническое задание


Текущий сайт создан на технологии Vue (смотреть исходники здесь). 

Необходимо создать страницу, которая будет содержать красивый рассказ о поселке. Рассказ будет реализован в файле index.html.
Функционал исходного сайта «gsgusev.ru» необходимо перенести на поддомен «info.gsgusev.ru»

Главная страница - index.html


Инновационный кластер технополис GS располагается в двух километрах от города Гусев Калининградской области.

В городе будущего живут ведущие специалисты и программисты со всей России. Здесь создана благоприятная среда для роста ученых и появления новых инновационных разработок в сфере информационных технологий.

Продукты, созданные сотрудниками кластера, широко известны в России и за её пределами.



Сотрудники GS Labs (центра исследований и разработок программных продуктов и потребительской электроники) активно сотрудничают с калининградским IT-сообществом и проводят митапы в БФУ им. И. Канта.



Для поддержания физической формы и активного образа жизни инициативные сотрудники коттеджного посёлка создали «клуб 111» - клуб триатлона.



Члены клуба являются сотрудниками Технополис GS и регулярно принимают участие в международных соревнованиях по триатлону. Каждый год в августе на территории посёлка проходит открытый ежегодный чемпионат по триатлону. Больше подробностей можно узнаться на официальном сайте клуба: 111club.ru

(Ссылка на сайт клуба 111) 111club.ru

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



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

(Ссылка на сайт info.gsgusev.ru) info.gsgusev.ru

Наши двери открыты для специалистов и их семей. Близость моря, свежий воздух и Европа под рукой. Если вы задумываетесь о своём будущем, рассмотрите список наших открытых вакансий.

Скоро здесь появится список актуальных вакансий

Результат

После реализации приведен фрагмент сайат:



Дальше планируется развитие и улучшение сайта.

Сайт может отличаться от того, что заявлено.
Поэтому актуальную версию можно всегда посмотреть прямо на сайте: gsgusev.ru

Tuesday, June 4, 2019

Разработка персонального сайта

Создать персональный сайт - это нелегкая задача. Обычно задание на разработку сайта ставит заказчик. В данном случае необходимо поставить задачу самому себе. Итак...


Техническое задание


Сделать самый простой сайт, который будет отвечать на главный вопрос «Кто я?».
Кроме того сайт будет отображать текущие навыки и умения, а также рассказывать о предоставляемых услугах.

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


Главная страница - index.html


Аватар

Vadim Cpp

Место жительства: Калининград, России

Деятельность: программирование сайтов и мобильная разработка, веду блог

Работаю в компании Роскомпьютинг

Веду проекты
Тут пока пусто, но скоро появится список проектов.

Контакты: github, linkedin, вк, фб, твиттер, инстаграм, tg, email


Результат


На мобильных устройствах сайт выглядит так:



За дизайн спасибо телеграм чату «UI, UX & Web дизайн»

Sunday, June 2, 2019

Техническое задание на изменение сайта ТЦ «Две пятерки»


«Пришедшая в голову идея еще не материальна. Записанная идея уже начала реализовываться.»

Техническое задание

Текущий сайт создан на технологии ReactJS (смотреть исходники здесь). Поисковые системы пока плохо «понимают» такие сложные сайты. Поэтому исходный сайт «gorkogo55.ru» необходимо перенести на поддомен «shop.gorkogo55.ru».

На основном домене «gorkogo55.ru» необходимо разместить простой сайт из нескольких html страниц.

Исходный код нового сайта назвать gorkogo55-landing и опубликовать в открытый доступ на Github

Главная страница - index.html


В шапке необходимо отобразить логотип:




Добро пожаловать на сайт торгового центра «Две пятерки»

Адрес: Калининград, улица Горького, 55
График работы: с 09:00 до 19:00

Вы - посетитель?

Просмотреть акции магазинов, информация о магазинах, как добраться до торгового центра - раздел «Посетителям»

Вы - арендатор?

Просмотреть помещения, доступные для сдачи в аренду, информацию об управляющей компании, разместить объявление об акциях и распродажах - раздел «Арендаторам»

Вы - собственник?

Просмотреть информацию об управляющей компании, разместить объявление об акциях и распродажах - раздел «Собственникам»

Контакты

По вопросам сотрудничества пишите во
ВКонтакте или Телеграм

Страница «Посетителям» - visitors.html


Разместить информацию:
  • Информация о магазинах (это уже реализовано на сайте)
  • Просмотр акций от разных магазинов
  • Как добраться до торгового центра

Страница «Арендаторам» - tenants.html


Разместить информацию:
  • Помещения, доступные для сдачи в аренду
  • Информация об управляющей компании
  • Возможность разместить объявление об акциях и распродажах

Страница «Собственникам» - owners.html


Разместить информацию:
  • Информация об управляющей компании
  • Возможность разместить объявление о сдаче помещения

Зачем это все?

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

Результат

После выполнения сайт выглядит так.

Главная страница:


Страница «Посетителям»:


Страница «Арендаторам»:

Страница «Собственникам»:



Планы


Дальше нам предстоит собрать отзывы у посетителей, арендаторов и собственников и обновить разделы сайта в соответствии с пожеланиями.