От инженера по автоматизации до разработчика Python за 60 секунд...

Меня зовут Андрей. По образованию я инженер по автоматизации, но последний год занимаюсь backend разработкой на языке python. Мое увлечение IT началось с 1 курса, и я сразу знал, что вряд ли буду работать по специальности, но несмотря на это все-таки успел поработать 2 года. В итоге с 1 курса параллельно основной специализации c переменным успехом я изучал python, т.к. из всех возможных направлений backend разработка заинтересовала меня больше всех.

Подготовка к устройству

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

Поэтому еще 6 месяцев я потратил на изучение Django, DRF, docker, GIT, основы работы с базами данных, основы деплоя и многое другое, большинство этих слов на тот момент я слышал впервые. По итогу этих 6 месяцев на Heroku был развернут мой первый django проект. Он представлял собой сервис библиотеки книг, где были реализованы основные CRUD операции, авторизация и регистрация. Он имел ужасную структуру: шаблоны шли вперемешку с REST, использовалось несколько видов авторизации – по токену и сессиям, а также множество других косяков.

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

Несмотря на это, меня взяли на испытательный срок и дали шанс поработать над реальным проектом. Он представлял собой сервис для бронирования столов в ресторане. Большая часть проекта была уже реализована, от меня требовалось добавлять различные фичи или исправлять, всплывающие баги.

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

Трудовые будни

У каждого разработчика есть проект, которые снится ему в ночных кошмарах. Для меня таким проектом был сервис по накрутке подписчиков – PRclub. Мне он достался от других разработчиков не из нашей команды и был моим первым самостоятельным проектом. Кажется, он вместил в себя все, что может вместить в себя плохой проект: сложно написанный код, куча багов, ужасный флоу по разработке. Несмотря на все сложности, данный проект вышел на MVP, убил часть моей нервной системы и дал огромный опыт. Я по-своему люблю его, поскольку он дал мне понимание, что не все проекты в жизни будут идеальными и интересными. А также, что даже, казалось бы, в самом плохом проекте можно найти что-то хорошее – в нем я взял несколько элегантных технических решений и практик, которые до сих пор используются в нашей компании.

Далее был мой первый аутстафф. Это был легаси проект, написанный на python2.7. Он представлял собой сервис по электронному документообороту научных статей. Здесь мой основных задачей было написание ручек для получения статистической информации. В целом это были не самые плохие 2 месяца и интересный опыт работы в новой команде.

После аутстаффа я вернулся на внутренние проекты компании. Это была обучающая платформа для проведения онлайн-занятий. У учителя была возможность создавать собственные курсы и покупать готовые. Главная особенность платформы – интерактивный класс с видеосвязью и автоматической проверкой заданий. Кодовая база досталась нам от некомпетентных разработчиков, которые за год не сделали ровным счетом ничего. Из-за негативного предыдущего опыта заказчик поставил очень сжатые сроки. Но благодаря грамотно выстроенным процессам и усердной работе, нам удалось с нуля переписать существующий бекенд и выкатить MVP всего за 2 месяца. Благодаря этому мы продолжили работу над проектом и внедряли новый функционал. За это время был добавлен раздел для домашних заданий, сильно разнообразился раздел с типами заданий и добавлено множество фич, которые упрощали работу с платформой. Оглядываясь назад, понимаешь, что не все принятые технические решения были идеальны, однако опыт есть опыт. На этом проекте мне приходилось принимать архитектурные решения, проектировать таблицы и связи между ними в бд, а также работать в режиме жесткого дедлайна.

Итог

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