Мой опыт

О себе

Здравствуйте меня зовут Александр на этой странице хочу более широко рассказать о своём опыте. С компьютером я познакомился ещё в школе это был 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