Мой опыт

О себе

Здравствуйте меня зовут Александр на этой странице хочу более широко рассказать о своем опыте. С компьютером я познакомился ещё в школе это был zx-spectrum с кучей игр и встроенным интерпретатором basic. Уже тогда я писал небольшие программы по типу калькулятора и ввода пароля, к сожалению на тот момент из документации по basic у меня был всего одна книжка и не все примеры работали.

Далее у меня появился компьютер 80286 на 16-битовой платформе х86, на нем в теже школьные годы я научился программировать на Turbo Assembler. Тут было больше документации и примеров, т.к x86 платформа активно развивалась. Пробывал писать псевдографические игры, резиденты, программы для работы с диском.

Чуть пойзже уже на 32х битовой платформе i386, я научился разрабатывать программы под Windows, работать с сетью, с интерфейсом windows и многое другое. Пробывал разрабатывать на ассемблере под linux, это был nasm, в основном это были какието системные штуки.

В колледже, когда стал более менее доступен интернет, появился интерес к сайтам, как они устроенны и работают, тогда я стал изучать технологи php, js попутно проявляя интерес к linux и bsd операционным системам, было интересно собрать какойнибудь gentoo или установить freebsd/openbsd.

С распространением локальных сетей, стали появляться сайты с видео на технологии flash(actionscript) и тогда стало интересно как сделать самому нечто подобное, после некоторого времени изучения actionscript я написал свой видеоплеер, исходники которого вы можете посмотреть на моем github. https://github.com/mymywork/flashplayer

В это же время были популярны локальные чаты irc(Internet Relay Chat) тогда с приобретением java телефона появилась идея разработать для него свой irc клиент, с поддержкой цветов распространненого десктопного клиента mIRC и другими полезностями. Код вы можете посмотреть у меня на гихаб:https://github.com/mymywork/lalairc

Irc1 Irc2

Компания “Dinix”

Первая работа в компании Dinix, в качестве тестового задания попросили написать простой блог на php. В компании занимались разработкой сайтов на самописном php движке dcms, фреймворк yii тогда только появлялся, также прикручивали js/jquery т.к разделение на фронтендеров у нас небыло, вносили мелкие правки css. Однажды пришлось разработать слайдер превьюшек для галлереи с плавным замедлением прокрутки как на телефонах использовал только vanilla js без jquery.

Второй задачей было скопировать сайт whoer.net(сайт показывает много информации о вашем браузере и айпи) и прикрутить к нем p0f (passive os fingerprint) как сервис где как раз понадобились навыки работы и компиляции под linux системы.

Третьей интересной задачей было переквалификация в objective-c разработчика под MacOS, нужно было разработать графический десктопный клиент для openvpn. Ниже скриншот.

Hideman

Компания Magnitka.RU

Второе место работы Magnitka.ru местный интернет провайдер. Тут я подчерпнул много разнообразного опыту, такого как настройка L2-L3 сетевого оборудования, коммутаторы, роутеры, брасы. Прояснил своё понимание как устроены сети. Занимался администрированием сайта на bitrix.

За время работы в компании разработал инструментарий storm, который решал задачи:

  1. сборка карты коммутаторов в сети по информации о маках в управляющем vlan и визуальное отображение через веб интерфейс.
  2. резервеное копировение конфигураций устройств, независимо от их вендоров по базе.
  3. отображение информации геолокации устройств и привязка их к карте на yandex.map
  4. экспериментальная диагностика порта - состояние порта, получение мака порта, получение счетчиков ошибок/трафика порта, в случае pon уровня сигнала.
  5. поиск порта абонента по маку с учетом постороенной карты коммутаторов.
  6. сервис для поиска и подписывания порта абонента при авторизации на BRAS.
  7. сборка информации об устройствах - состояние портов, скорость портв, маки за портами и другой и работа с этой базой через sqlite в веб интерфейсе.
  8. облегчение включение опции на многих устройствах разных вендоров путем написания скрипта и использования фреймоворка.
  9. поиска порта абонента по маку, подписывание порта абонента на договоре в биллинге, привязку коммутатров к yandex карте, резервирование конфигураций оборудования, построение динамической карты коммутаторв с минимальным участием человека.

Для работы фреймворка был выбран протокол telnet, одной из причин такого выбора является то что некоторые коммутаторы не корректно отдают маки для vlan по snmp, либо вообще не реализуют данный функционал по snmp.
Одной из идей было реализовать функционал устройств в виде класса и использовать наследование ООП с переопределение отдельных специфичных методов.

Таким образом такой подход давал очень быстро добавить в систему похожие но ребрендированные устройства, другими словами похожие по cli коммутаторы. Весь инструментарий писался на ruby, использовались: d3.js, jquery, bootstrap, websockets, knockout, sqlite, webrick. Ссылка на проект https://github.com/mymywork/storm

Storm1

Storm2

Storm4 Storm3

Компания “Smart Bids”

На третьем месте работы я занимался только фронтенд разработкой это был проект системы заявок на банковские гарантии. При разрабокие использовался react, redux, saga, lodash, reselect, normalizr, yup, formik, webpack. При работе в этой комманде приобрел большой опыт по работе с react-redux окружением, и валидацией и построением форм на yup и formik. Могу отметить что также решал задачи на nodejs для бэкэнд части. alt text

Личный проект - VPN сервис.

VPN сервис который был полность написан но так и не был запущен. Реализовано подключение по протоколам openvpn, pptp, l2tp, ipsec. Был написан биллинговый скрипт на postgresql, скрипт на ruby для управления openvpn через radius протоколы, разработан кабинет на фреймворке Yii2. А также какой не какой дизайн и верстка и авторизация через социальные сети с помощью яндекс виджета loginza. Всё абсолютно делал сам. Исходный код можно посмотреть здесь: http://github.com/mymywork/vpn

alt text

alt text

alt text

alt text

alt text

alt text

Другие работы

  1. Живой поиск для сайта продажи аккумуляторов http://car-battery.moscow. search

  2. Диаграм-блоки с соединениями на фремворке JointJS https://github.com/mymywork/diagram search

  3. Простой crud на react https://github.com/mymywork/react-crud-tables

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

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

Контакты

mymywork@yandex.ru https://magnitogorsk.hh.ru/resume/c11e5c0eff08c316e10039ed1f704b5159324f