Пролог

Многие программисты и будущие программисты мечтают работать над интересными проектами с использованием новейших технологий, но реальность часто может быть очень разочаровывающей. Либо вы не можете найти работу, либо вы найдете ее в результате приземления на обслуживание кода перфокарт 80-х годов. Второй вариант может быть действительно отличным, если вы хотите работать только с 9 до 5, идти домой (или переходить со стола на кровать) и забыть о другом рабочем дне. Но что, если у вас большие амбиции и вы хотите не только разрабатывать продукты, но и развивать себя? Думаю, в такой ситуации ты не был бы счастлив. В этой статье мы расскажем о том, как я оказался на своей нынешней должности - от приложения до наших дней.

заявка

Прежде чем начать свою работу в AppUnite, я работал в двух разных областях: первая - это бэкэнд-разработка с использованием Java и Spring, вторая - облачная автоматизация с использованием в основном Python. Я бы солгал, если бы сказал, что это так же плохо, как упомянутые перфокарты. Но я чувствовал, что чего-то не хватает. Этот кусок головоломки использовал что-то новое, захватывающее и интересное для разработки продукта, которым я также был бы рад воспользоваться. Именно тогда я услышал об Эликсире! Я был поражен его особенностями и возможностями, которые он дает программистам. Именно в этот момент я узнал о вакансии разработчика Elixir в AppUnite. Что действительно меня поразило, так это НЕ ТРЕБУЕТСЯ ОПЫТ ЭЛИКСИРА (ЗНАНИЕ ДРУГИХ ЯЗЫКОВ В порядке) или что-то в этом роде… Я сразу понял, что должен подать заявку! Я отправила свое резюме, и в мгновение ока мне позвонила Паулина, представитель отдела кадров AppUnite. Звонок был просмотром, который большинство из нас хорошо знает - несколько слов о компании, ожиданиях, короткая беседа на английском языке (поскольку компания базируется в Польше и на этом языке мы в основном общались во время просмотра).

Через некоторое время мне позвонила Паулина и сообщила, что я прошла квалификацию на следующий этап - техническое собеседование. В то время я не знал, что меня ждет ЛОВУШКА.

Техническое интервью

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

Пришло время собеседования, я вступил на онлайн-встречу с Наташей (руководитель группы) и Дамианом (главный серверный разработчик команды), и тут я столкнулся с упомянутой ловушкой - я собирался решить задачу во время живого кодирования. Все было бы легко, но задача заключалась в разработке простого CRUD-приложения с использованием Elixir OTP - оно должно было бы сохранять состояние, но, поскольку Elixir является чисто функциональным, это не так просто, как изменение некоторых массивов или карт. На данный момент я ничего не знал о GenServer, Агентах, Супервизоре и других волшебных одноразовых паролях. Привычные решения, которые приходили мне в голову, явно были БД и файлами! Но я понял, что могу выкопать себе могилу только во время интервью в прямом эфире. Не имея представления об управлении состоянием в Elixir, мне удалось решить только две основные задачи, связанные с перечислением записей.

После того, как пришло время закончить часть живого кодирования, я почувствовал себя побежденным и не имел никакой надежды на то, что буду многообещающим кандидатом. Мы вкратце поговорили о soft & hard skills - Agile, SCRUM, индексах баз данных, микросервисах и т. Д., Повседневной работе в Appunite, пожелали каждому хорошего дня и завершили встречу.

Мне не нравится не знать, как решать проблемы - поэтому я решил прочитать про Elixir OTP и попробовать решить задачи снова, без цейтнота, самостоятельно. Выяснилось, что я смог решить это примерно за ~ 1 час. Тот факт, что я так быстро решил эту проблему после собеседования, еще больше разозлил меня за то, что я испытывал такой стресс в течение большого времени. Больше я ничего не мог сделать - только ждать ответа от AppUnite.

Предложение

Через несколько дней после интервью мне неожиданно позвонила Паулина. Я думал, что уже могу понять, что она собиралась сказать: «Спасибо за ваше время и интерес к нашему предложению, но мы ищем кого-то более опытного. Надеюсь, мы будем поддерживать связь в будущем ». Но она сказала с точностью до наоборот: «Мы рады пригласить вас в нашу команду».

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

Приняв предложение, я связался с Дамианом, который дал мне несколько советов - на чем сосредоточиться, копаясь в библиотеках Elixir и т. Д.

Первые дни в новой роли

Получив компьютер, привилегии обязательного доступа и введя в рабочую среду, я был готов начать новое приключение - работать разработчиком Эликсира!

Первые задачи были как легкими, так и непростыми, так как мне пришлось копаться в нашей кодовой базе и становиться более уверенным в этом. У меня была первая возможность поработать с товарищами по команде, ответственными за приложения, которые используют наш backend API - фантастический способ познакомиться с ними, изучая кодовую базу и новые вещи. Сотрудничество было потрясающим, и я не мог мечтать о более дружелюбных сотрудниках - идеальной атмосфере для работы.

Отправка решений для упомянутых исправлений включала создание запросов на слияние с описанием проблемы и решения. После этого в игру вошел Code Review, который позволил моим товарищам по команде указать мне правильное направление - нет лучшего способа изучить передовой опыт, чем необходимость их использовать! Конечно, в то время мне приходилось консультироваться с другими #backendboyz почти по каждой задаче, так как я плохо знал некоторые части нашего приложения. Но маленькими шагами приближалась независимость.

Теперь

Написав эту статью, я работал около 3 месяцев и начал полностью самостоятельно разрабатывать новую функцию. Мне больше не нужно спрашивать ребят обо всем, что я собираюсь сделать, я советуюсь с подходами, которые могут быть не так очевидны. Я также чувствую, что даю хорошее понимание, проводя анализ кода другого кода, обсуждая новые функции и подходы.

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

Заключение

Как видите, не обязательно быть полностью уверенным в технологии, чтобы начать с ней работать - здесь большую роль играют любопытство и желание стать лучше! Просто возьмите его в руки и получайте удовольствие, творите, играйте - он не кусается. Каким бы ни был результат, всегда есть фантастический результат - вы узнали что-то новое! А может быть, вы получите работу своей мечты? 😄