Как вы себя чувствуете в самоизоляции, как адаптируетесь, как работаете, какими привычками обзаводитесь — об этом наш новый опрос. Пройдите его (займёт 10 минут) и в конце узнайте, как дела у других.
Обо мне

TL;DR. если интересует только опыт разработки листайте сразу вниз.

Ещё в школьные годы увидев компьютерные игры заинтересовался как их можно сделать самому.  Начал читать книги которые попадались по этой тематике. Из устройств которые можно было програмировать сначало у меня был только советский калькулятор "Электроника МК-61". 15 регистров памяти, чуть больше сотни байт на код, и возможность просмотреть листинг только в виде шестнадцатиричных кодов... что ещё надо для счастья???))))

Далее у меня появился ZX-Spectrum (48K), или в просторечье "Дельта". Железка уже веселее тут уже был и бейсик и ассемблер. Загрузку с ленты запомню на всю жизнь)) да и несколько вариантов русификации клавиатуры тоже. По счастью отдали с журналами посвещеными Z80 и там было не мало инфы,  в том числе и про системы зашиты игр)))

Позднее у меня появился ПК с 6686 процом  (именно 6000 - CYRIX). Не смотря на то что на компе были 98-е окна, рассматривал я их как нечто ненужное и тормозное. Купил себе диск с софтом для програмирования. Мотаться за ним пришлось аж в столицу республики) Но что поделать интернет был ещё диал-ап и не у всех. На диске были Turbo Pascal, Forthran, Forth и самое главное книги Д.Кнута. Так же там были инструменты для отладки к примеру Numega SoftIce вернувшая мне привычную кнопку "Break" со спектрума. Фортран меня не заитересовал, ковырялся в основном с Паскалям и Фортом в досе, в Форте доставляля привычная по мк-61 работа со стёком, да и сама идея с VM была необычна (как в Java), но из-за слабых ресурсов тогдашнего железа Форт не выстрелил. Софтайс же нередко использовал для читинга в играх, зачем каждый раз запускать артмани если можно заменить dec на inc или вообще занопить и записать это прям в эксешник игры?))) Через некоторое время всё же решил попробывать написать что-то под окна. Раздобыл Borland Pascal (это предшественик Delphi). Справочники по Api WIN16 были только на английском, но это не помешало мне разобратся и написать нечто отдалённо похожее на танки с денди) Потом в руки попала 6-я Deplhi и учить пришлось опять же английский Win32 Api Reference. Хотя конечно что бы накидать красивый авторан для сидюшки на делфи особо апи знать и не требовалось.

Далее после окончания 9-го класса, я поступил учится в КПК. На уроках програмирования меня заметили и на первом же курсе отправили республиканскую олимпиаду, где я занял второе место несмотря на то что против меня были ученики 4-5х курсов))) В дальнейшем я занимал первые места...

Во время обучения в КПК стало уже повеселее, появился GPRS у кого-то из друзей даже был ADSL... Так что с поиском инфы стало по проше) В жизни появился линукс, но пока он был глючный и непонятный. Да и железо потихоньку обновлялось. Всё больше копался в Delphi, писать под дос уже было не интересно. Постепенно с обновлениями стал отказывать SoftIce... хронил как брата( не было больше кнопки "break", машины окончательно захватили власть над людьми((( Но дебагерр пал.. да здравствует дебаггер! Нашлась OllyDbg ( и её мод YDbg для некоторых непослушных программ ). Так же использовал IDA иногда. И да, в коллежде в котором я учился я устроился работать сисадмином. Мне было примерно 16-17, а я получал з/п с одной кассы со своими учителями))))

На практику устроился сисадмином в сеть магазинов электроники. После практики остался там работать. Сеть держалась на трех сервах на Windows Server 2k3, были настроены VPN для удалёных точек. Так же было настроено Active Directory. Всё это с нуля подымали мы.  В то же время ко мне поступило предложение из соседнего города стать разработчиком РНР, тестовое я сделал (несмотря на то что видел РНР в первый раз), но меня не взяли. В итоге про пыху и веб я надолго забыл. Но уже тогда начала закрыдыватся мысль о том что чем низкоуровнее програмируешь - тем больше времени тратишь зря на всякие размеры буферов, заморочки со стеком и памятью итп.

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

Далее спалился что умею програмировать и перешёл в разработчики на платформе "Инфо-Предприятие". 1Ска в фирме была не в приоритете, да и если честно "1С" мне и самому не очень нравилась - от нее так скажем пахло Visual Studio и мастдаями, а ИП напоминала добрую тёплую дельфи))) Более подробно об этом месте работы ниже. Добавлю лишь что в это время кроме дельфи начал копатся в ассемблере под windows, flat assembler. И даже писать простенькие программы на нём.

Позднее устроился обслуживать интернет-салоны в сеть салонов. Получал в два раза больше чем на преведушем месте.

После распада сети салонов устроился сисадмином к местному провайдеру. Поддерживал работоспособность кучи сервов на линухе и другого активного сетевого оборудования.

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

На тот момент я решил вернутся в разработку. Но так как выбор в городе котором я жил на тот момент был между "1С" и "1С"))) То я пошёл 1С-разработчиком. Проработал там три месяца, у меня на поддержки был магазин с 1Ской, так же писал различные обработки и т.п. В итоге получил крайне неадекватное предложение по з/п и ушёл оттуда.

Фирм занимавшихся разработкой в городе по факту больше и не было. И я не знал что мне делать дальше. По счастью в день ухода встретился со знакомым ещё по сети магазинов ремонтником электроники, и он предложил устроится к ним. Я конечно пытался возразить на тему "я умею паять только провода", но на это получил ответ "башка есть дальше разберёшся". Так я стал ремонтником в сервис-центре. В процессе работы всплыли воспоминания из книг по радоиэлектроники прочитаных ещё в школе, а паять и т.п. меня научили. "Моими" аппаратами были планшеты, GPS, компы и питальники (весь стол под 310В постоянки это так весело!!!!).

Спустя какое-то время переехал в город Чебоксары. По началу пытался устроится по электронике, но в итоге упёрся в отсутствие профильного образования. В разработку сразу не сунулся так как думал "что всё забыл". Но в один момент всё же решил попробывать вернутся и устроился в одну из студий города "нижнего ценового сегмента" (есть ниже). Как выяснилось уже после устройства, других разработчиков на фирме не было и мне элементарно даже подсказки было не у кого спросить. Приходилось учится самому и ещё успевать по задачам))) Было не так просто, но я справился. Когда в дальнейшем стали приходить другие новички мне уже было чему научить их. Ушёл я после того как выташил сложный повисший проект (он повис до моего устройства в студию) где дело уже почти дошло до суда, но когда дошло до подсчёта з/п я получил голый оклад (часть з/п была сдельная), со словами "ты ничего не сделал в этом месяце".

Я устроился в одну из топ студий города. Сначало посадили читать обучалки, но сеошникам вдруг что-то понадобилось поправить... В итоге я так и не прошёл обучалку))) На студии я уже лучше познакомился с Битриксом, другие разработчики показали PhpStorm. Ради эксперемента на моей рабочей машине стоял linux... Что мне показалось даже удобнее (до сих пор работаю под пингвином). Иногда приходилось делать какие-либо большие задачи вместе с кем-то распределяя работу. Основным проектом который я вёл был московский магазин одежды с довольно хорошим темпом правок. Я смог добится быстрой работы этого сайта. Со временем появилось свободное время, я прочитал "РНР7 в подлинике", "Паттерны проектирования (O`Reilly)". После второй конечно захотелось всё заООПешить)))) Так как при работе с магазинами постоянно работаешь с кучей правок и думал что это может спасти, сейчас смешно вспоминать это) Ушёл из студии т.к. искал более оплачиваемую работу в связи с болезнью близкого человека.

Я попал в команду поддержки собственных внешних сайтов в "Первый бит" ( короче никак, там ещё несколько направлений студий)) ). Работал удалённо, сначало было скучновато, но потом привык. В новом месте было много интересного для меня, от просто своих модулей и компонентов до ООП и композера. Команда из опытных людей, agile, код-ревью и тестирование.... Нового было много. Но и проекты не были простыми. Модули работали на многих сайтах и при изменении приходилось это учитывать. Где-то легаси доходило до 5лет...

В сентябре 17-го я перехал в Санкт-Петербург. Одно из того что мне здесь понравилось - это книжные) первом делом были закупленны книги по Node.js и React. Мне были интересны эти темы, тем более что на работе требовалось более глубокое понимание JS чем в обычной студии. В случайном разговоре у книжной полки мне посоветовали "Совершенный код", вот реально классная книга, многие проблемы описаные там я наблюдал. Начал пробовать писать приложухи на React.

В апреле 18-го стал одним из двух старших в команде. Тимлид ушёл ещё августе 17-го)) так что на нас старших было много обязаностей. Как выполнение ревью, так и красные задачи - всё счастье нам))) в какое-то время необходимо было успевать хоть что-то обьяснять новичкам. Короче было весело. К тому моменту уже разочаровался в ООП как в панацее и вообще из всех принципов остался неопровержим один - KISS. После пробных приложух на React понял что JS учить всё же придётся))) да и по работе это требовалось. В итоге начал читать "You dont know js", вторая половина серии была не переведена... читал прям на родном языке. Как показала практика - что-то понял))) В свободное время сделал что-то похожее на приложение React+Redux. Небольшое правда (есть на гитхабе). Так же для себя делал тулзу для просмотра служебных данных системы распределения заявок. Т.к. выходило что мне необходиом было читать данные непосредственно со страницы понял что проше это сделать на фронте, поэтому решил использовать React. В дальнейшем эта приложенька попала на глаза начальству и затем в мастер одного из битрикс-модулей фирмы) Начал для себя писать приложуху с использованием Electrone и React, но она получилась неожиданно большой и я на конец 18-го сделал только черновик, которым впрочем вполне успешно пользуюсь. Вообще получившийся трэш надо явно переписать уже нормально)))

Примерно с лета 18-го у нас начались проблемы с тестовым окружением. "Человек взятый на испытальный срок тимлидом" пытался поднять новые тесты. В итоге к концу лета это всё закончилось печально. Был промежуток когда работа полностью встала. "И.о. тимлида" в тот момент уже уволили.  Ушёл другой старший разработчик. Я остался за старшего. Ситуацию удалось стабилизировать. Сделали временое решение с тестовыми, работа пошла. После этих событий с тестовыми мне попалась в руки книга "continuous delivery", как по мне некоторые веши в ней написаны кровью. Об увольнении я подумывал ещё с апреля ( во многом из-за того что уровень з/п был как у простого разраба в студии ), а после случившегося я решил уйти.

Уже ищя работу я начал задумыватся над тем "а чего я собственно хочу от работы?". Далее, уже устроившись, я начал ловить себя что на мысли что как будто нахожусь не там где должен... И я начал скитатся по разным местам пытаясь понять что мне нравится, а что нет. Ответить на этот вопрос оказалось не так-то просто как кажется на первый взгляд( В итоге по счастью попал в "Бизнес-профи", на разработку приложения на Vue, да конечно приложуха была под Битрикс24, но... там было уже меньше Битрикса))) Да, Vue я до этого не учил, и после сдачи первых задач по нему была даже курьёзная ситуация, когда на третий день, на энной-задаче по нему, техдир меня спросил "почему ты в этой задаче потратил многов ремени?", на что я честно ответил что вью в первый раз увидел третий день назад)))

В "Бизнес-профи", стал понимать что мне нравится работать с JS, но возможностей полноценно работать там всё же не было( Например приложение Битрикс24 работает во фрейме, а вот девтул вуя в это не может...так же были другие ограничения( Со временем всё больше начали раздражать те части Битрикс24 с которыми приходилось работать. Особенно рест-апи и работа в облаке.... "продуманная" архитектура Битрикс во всей красе))) Да и если бы мне пришлось выбирать между Vue или React, я бы выбрал React, так как он мне кажется понятнее. Всё это, вкупе с некоторыми нерешенными административными вопросами привело к тому я решил уйти оттуда.

Далее уже твердо хотел попасть в полноценную фронтенд-разработку, хоть джуном, но попасть. Шансы конечно были невелики... Битрикс в резюме это -100500 к шансу попасть в нормальное место. Несколько собеседований закончились ничем. Ну а сколько работодателей просто прошло мимо... я не знаю.

Профессиональные навыки
Участие в профессиональных сообществах
Опыт работы
Многопрофильная группа ИТ-компаний, лидер российской отрасли информационных технологий
фронтенд-разрабочик (удалённо)
Ноябрь 2019 — По настоящее время (6 месяцев)

Разработка порталов/дашбордов для госзаказчиков. (вот тут показан один из проектов https://www.youtube.com/watch?v=d8H9pWP-DVw&feature=youtu.be)

работал с React, Vue, redux, mobx, vuex. CSS-фреймворками: bootstrap 3/4, antd (material)

Помогаем компаниям автоматизировать бизнес-процессы и обеспечиваем бесперебойную работу IT-сервисов
фронтенд-разрабочик (Vue, Битрикс24, удалённо)
Май 2019 — Октябрь 2019 (6 месяцев)

разработка SPA на Vue с беком Битрикс24 Rest, в том числе:

- рефакторинг универсального фильтра с переводом на Vuex

- создание/доработка общих компонентов в общей либе (разделяемой между несколькими проектами)

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

Интернет-магазин товаров для дома
старший веб-разработчик (удалённо)
Февраль 2019 — Апрель 2019 (3 месяца)
iDex Group
Москва
web-разботчик (битрикс/битрикс24, удалённо)
Ноябрь 2018 — Январь 2019 (3 месяца)

Выполнение задач по интернет-магазинам, корпоративным порталам. Создание модулей.

Международная компания-интегратор ИТ-решений для учета и управления
старший разработчик
Апрель 2018 — Ноябрь 2018 (8 месяцев)

с апреля 2018 повышен до старшего разработчика. работал так же удалёно.

В дополнение к обязанностям на преведущей должности:

- выполнение code-review

- выкладка релизов (объединение веток по гиту, непосредственно ручной деплой)

- планирование решения больших задач, разбивка на более мелкие. координация работы разработчиков по ним

- выполнение задач требующих решения сразу на продакшене

- обучение новичков

достижения:

1. выполнил рефакторинг кеширования основных модулей. что дало по всем сайтам:

       - уменьшения размеров кеша (на одном из сайтов с 6ГБ+ до ~130Мб)

       - заметное увеличение быстродействия

      2. добавил в наши модули (модули для битрикса) возможность установки node.js-модулей. раньше такие зависимости приходилось прописывать на каждом сайте.

      3. создал модуль интеграции с eSputnik

      4. довёл до конца перевод на РНР 7 самого крупного сайта компании

      5. создал утилиту для просмотра различных служебных данных системы распределения заявок. фронт часть основана на React

      //--------------------------

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

      - задачи на 40+ часов протестированные и лежащие "в релизе" внезапно отменялись.

      - отменятся могли задачи под которые был расчитан код в других задачах.

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

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

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

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

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

      Web-разработчик
      Апрель 2017 — Май 2018 (1 год и 2 месяца)

      Работая удаленно, занимался поддержкой/доработкой сайтов компании на платформе 1С Битрикс, числился в ЦКП ( "Центр Корпоративной Поддержки" ). всего было на поддержке порядка 20ти сайтов. зачастую работать приходилось с недокументированным кодом написанным достаточно давно ( первые коммиты на многих сайтах от 2010 года ). один из сайтов: http://1cbit.ru, ( select count( id ) from b_iblock_element; ~ 250K+  )

      Рабочий процесс организовался по скраму, работа велась в команде до 7 разработчиков. Работал именно в команде, ВСЕ занимались ВСЕМИ сайтами. Не было привязки разработчиков к определённым сайтам. Местами приходилось координировать решение задач с другими разработчиками, или даже разбивать задачи. Каждая выполненная задача проходила code review и тестирование, что очень дисциплинировало. На codereview во главу угла ставилось поддерживаемость и читаемость кода.

      Работал full-stack, по фронту работал с bower, npm, requireJs. фронт строился на AMD модулях с прототипными "классами".  имел опыт как создания так и изменения модулей.  нередко приходилось решать проблемы с "гонкой" во время загрузки.  было несколько задач где сталкивался с LESS.

      на основе gulp сделал сборку CSS/JS. CSS только минифицировалась (т.к. объединение оставили на движке битрикса), но там пришлось решать проблему с кодировкой (не во всех 1800+ файлах она была одинакова).  созданиые min файлы добавлялись в .git/info/exclude. JS же собирался в бандл из всех модулей подключаемых в главном файле, ну и само собой минифицировался. такая система сборки была внедрена на нескольких сайтах. 

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

      создал пользовательский тип свойства "Таблица" для инфоблоков, похожий на детализацию в 1С, записи хранятся в хиглоад блоке.

      практически постоянно работал с отладчиком (XDebug). работал с xprof

      разрабатывал обмен с 1С по SOAP.

      /*==========================*/

      В этот же период времени на фрилансе полностью сам создал модуль (включая компоненты) для работы с региональными поддоменами, и внедрил его. функционал включал подмену включаемых областей в зависимости от региона (причем с возможностью создания через "эрмитаж"), замену магических значений значениями из локации, ну и само собой определение города и его выбор.В модуле используется ООП подход. Для создания объекта локации используется "Фабрика", локации, модели их хранения, и провайдеры определения развязаны через соответствующие интерфейсы. IoC реализован через set метод и инъекцию в конструкторе. Автозагрузку классов правда использовал стандартную Битриксовую, в итоге файловая структура немного не соответствует PSR.

      /*===============================*/

      Производственное агентство с фокусом на разработку и развитие eCommerce проектов на 1С-Битрикс
      Web-разработчик
      Июнь 2016 — Апрель 2017 (11 месяцев)

      разработка, техподдержка сайтов на платформе 1С-Битрикс.

      В основном занимался интернет-магазинами, причем вести приходилось параллельно несколько сайтов. основной проект которым занимался - bigmarket.ru ( к сожалению на данный момент его не сушествует, есть только презентация посвяшеная ему https://o2k.ru/projects/bigmarket )

      Сдал сертификационный экзамен "Интеграция дизайна и настройка платформы". номер сертификата: CERT-EX-DEV-010-4266075-377247-414682

      Неоднократно внедрял "Композит", настраивал как стандартные обмены (1С, CML2), так не стандартные. Использую D7 при необходимости. создавал как свои компоненты так и модифицированные копии стандартных (например учил catalog.smart.filter понимать $arFilter на "входе"). делал верстку с учётом Retina-дисплеев.

      Участвовал в совместной разработке, освоил git. свободно работаю в Linux (использовал в качестве основной ОС для работы).

      hi-techmedia
      Чебоксары
      Web-разработчик
      Сентябрь 2015 — Июнь 2016 (10 месяцев)

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

      в основном занимался разработкой сайтов на cms Modx (eva, revo). лечение от вирусов и тех.поддержкой. так же был опыт работы с OpenCart. работал с чужими самописными CMS.

      создавал сайты как с использованием JQuery, так и без. в том числе и с
      использованием AJAX. был опыт парсинга данных с CRM не поддерживающей экспорт. Делал адаптивную верстку.

      пример сайта на modx http://versal-kanash.ru/ с фреймами заморочился для того что бы музыка не рестатовала при переходе по страницам. JS часть там получилась немного сложноватой, но в целом мне понравилось то что я там сделал) жаль что кто-то пришёл после меня вернул маргин у body, некрасиво.

      на третий месяц работы начал разрабатывать интернет магазин на битрикс. разработка затянулась (в основном из-за тормозов со стороны 1С). так же было много проблем из-за ограниченных ресурсов хостинга. но в итоге сайт был введён в эксплуатацию http://dom-plitok.ru/

      уже ближе к уходу ввёл в эксплуатацию ещё один интернет магазин (http://sport-tovari21.ru/), разработка которого висела задолго до прихода меня на то рабочее место. основная часть работы - наладил обмен с 1С и работу с платежной системой. шаблон и практически всё остальное было уже готовое.

      Frin-Soft
      Канаш
      Разработчик на платформе "Инфо-Предприятие"
      Август 2007 — Сентябрь 2008 (1 год и 2 месяца)

      Платформа "Инфо-Предприятие" - это по сути аналог 1С:Предприятие. работал со 2й версией, в качестве движка БД использовался Firebird.

      изначально занимался сравнительно мелкой доработкой простых конфигурации. где-то с апреля 2008 занимался внедрением конфигурации расчёта начислений местного ЖКХ. на тот момент ТСЖ практически не было, так что расчёты производились по всему городу.

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

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

      в основном разработка строилась вокруг работы с БД. нередко приходилось делать некоторые операции чуть ли не на чистом SQL. многие запросы приходилось оптимизировать. да и не только запросы, сами расчёты тоже. до сих пор коробит при виде подзапроса в цикле по результатам запроса)))

      были некоторые веши которые мы не могли сделать напрямую в коде. к примеру при отображении списка домов/квартир существовала необходимость сортировки по номеру, но он по сути не строка не число) ( например 2/1 ) используя ассемблер написал UDF для firebird'а которая преобразовывала такие номера к числу. в итоге поставили вычисляемое поле с этой функцией по которому и производили сортировку. да знаю, никаких вычислений в БД, но мы не могли никак влиять на выборку списка элементов платформой. так что только так.

      на тот момент платформа не предоставляла никаких возможностей массовой печати. печать же штатными средствами заняла бы намного больше суток, т.к. каждая квитанция посылалась по одной. в итоге проблему решил создав dll на Delphi которая через ActiveX работала с Excel. Квитации формировали сначала в книги экселя по районам города, потом посылали на печать. так удалось добиться приемлимой скорости печати. так же на delphi реализовывал несколько диалоговых окон, правда они были больше для красоты)))

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