Больше информации по резюме будет доступно после регистрации

Зарегистрироваться

Кандидат

Мужчина, 44 года, родился 18 марта 1981

Верхняя Салда, готов к переезду (Екатеринбург, Москва, Пермь, Санкт-Петербург), не готов к командировкам

разработчик программного обеспечения

2 000 $ на руки

Специализации:
  • Программист, разработчик

Занятость: полная занятость

График работы: полный день

Опыт работы 26 лет 2 месяца

Апрель 1999по настоящее время
26 лет 2 месяца
ОАО Корпорация "ВСМПО-АВИСМА"
Инженер-программист
Разработка программного обеспечения, сопровождение, техническая поддержка. Разработка крупных проектов по автоматизации производства, АСУП. Разработка серверных технологий (.NET). Реализованные проекты ****************************************************************************** Расширяемая, распределённая система мониторинга серверов ****************************************************************************** • Развитая объектная система, позволяющая расширять систему практически по всем направлениям (как для создания новых тестов, генерирующих события, так и для создания средств обработки, передачи событий, авторизации пользователей, составления отчётов и т.д.). • Язык сценариев, основанный на XML. • Авторизация пользователей (клиентских приложений и промежуточных серверов). • Встроенные средства связи с СУБД (в настоящее время – SQL Server Compact Edition). • Оповещение по электронной почте. • Возможность загрузки дополнительных DLL-расширений. • Основанная на событиях модель работы. • Сложные сценарии маршрутизации событий, как в рамках одного сервера, так и в распределённых сценариях (события «прозрачно» могут быть маршрутизованы на другой сервер). Поддержка двух моделей передачи данных: «push» («проталкивание» событий на сервер) и «pull» («вытягивание» событий с сервера). • Одновременно могут быть активны несколько сценариев мониторинга. Работа каждого сценария мониторинга производится в собственном Application Domain в рамках одного Windows Service. • Параллельная работа частей сценария мониторинга (активное использование многопоточности) с целью использования возможностей многоядерных/многопроцессорных систем. • Средства отладки и отслеживания событий (подключаемая удалённая отладочная консоль). • В настоящую версию включены следующие средства мониторинга: o Ping-тест. o HTTP-запрос по указанному адресу с возможностью анализа ответа, в т.ч. с использованием регулярных выражений (regular expressions). o Тест статуса указанного Windows-сервиса. • WPF клиентское приложение (получение важных событий с сервера и оповещение о них пользователя). • WPF приложение управления мониторингом (остановка/запуск Windows-сервиса, регистрация и снятие с регистрации, запуск и останов сценариев мониторинга, подключение отладочной консоли к серверу). • WPF приложение для генерации типовых сценариев мониторинга. Разработано на C# с использованием технологий WPF и WCF. В настоящее время находится в alpha стадии. По требованию могу предоставить руководство по созданию сценариев мониторинга в виде PDF, по которому можно будет более подробно оценить возможности системы. ****************************************************************************************************************** Распределённая система "верхнего уровня" для АСУ ТП вакуумно-дугового плавления титана ****************************************************************************************************************** • Серверная часть системы, реализованная на операционной системе QNX 4.25. • Рабочее место оператора-технолога (просмотр, распечатка разнородной технологической информации, хранимой в СУБД и на файл-сервре в виде графиков, таблиц, и т.д.) • Подсистема автоматической печати диаграмм плавления. • Подсистема удалённого администрирования и управления данными. • Подсистема просмотра и печати результатов метрологической аттестации и калибровки. • Подсистема удалённого обновления ПО с сервера. • Разграничение прав доступа пользователей (на основе MAC-адреса сетевой платы удалённой клиентской системы). В системе "завязаны" в единую систему данные из большого количества разнородных источников (контроллеры сбора данных, промежуточные системы, СУБД Sybase SQL Anywhere), доступ к данным производится через единый промежуточный сервер данных, выполняющего задачу промежуточного хранения, преобразования и автоматического управления потоками данных. В системе "с нуля" реализована унифицированная, расширяемая подсистема печати технологической информации в форме таблиц, графиков и в комбинированном виде. Подсистема независима от устройства печати, поддерживает распечатку диаграмм в режиме "рулона" (для матричных принтеров, в которые заправляется рулон бумаги) или в постраничном режиме - без переконфигурации форм печати. Подсистема способна автоматически оптимизировать различные параметры печати и расположение элементов на странице/рулоне без участия пользователя (в том числе, автоматический подбор шкал, абсолютных размеров и взаимного расположения графиков, исходя из множества критериев, включая удобные для восприятия человеком цены деления между ячейками графика). Подсистема способна автоматически определять и "выкидывать" несущественную информацию из потока аналоговых данных (критерии формулируются технологами) в целях экономии бумаги. Разработано на следующих языках программирования: C (QNX), Borland Delphi (Windows). ************************************************************************************************************** Несколько проектов автоматизации установок ультразвукового контроля титановых плит. ************************************************************************************************************** • Система из двух промышленных компьютеров - сбор информации под управлением ОС QNX 4.25 (ОС QNX 6.3 Neutrino в более поздних проектах), интерфейс оператора, распечатка просмотр и архивирование данных - под управлением Windows. Связь между компьютерами - по протоколу TCP/IP. • Сбор данных (2 платы дискретного ввода-вывода, одна плата аналогового ввода, 1 плата сбора положения рабочего инструмента с энкодеров) производится на максимальной частоте 10 КГц (максимальная длительность цикла опроса - 100 микросекунд) - без пропуска циклов опроса. • Сложная система проверки достоверности и корректности принимаемых данных, реализованная в рамках цикла опроса (пропуск хотя бы одного цикла опроса, сбой синхронизации или возможное появление "непросканированного" участка минимального размера, например, в случае локального скачка координат, считается ошибкой и приводит к остановке сканирования) • Главный принцип системы - полная достоверность контроля и стремление к максимальной вероятности обнаружения дефекта (в том числе, предприняты шаги к уменьшению влияния "человеческого фактора"). • 2-х, 3-х и 5-и (в более поздних проектах) координатное управление перемещением рабочего инструмента. В частности, реализация в одном из проектов собственной подсистемы ЧПУ (численно-программного управления), с разбором и выполнением программ, написанных на подмножестве стандартного языка, используемого в системах ЧПУ. Есть опыт работы с контроллерами PMAC фирмы Delta Tau. • Сложный формат хранения данных (хранение множества файлов и директорий в едином файле). • Функция "слежения за поверхностью" (обеспечение постоянного расстояния рабочего инструмента и перпендикулярности к криволинейной поверхности, с заданными максимально допустимыми параметрами криволинейности) - в более поздних проектах. • Функция статистического анализа результатов контроля (вычисление локального значения параметров "сигнал/шум", согласно стандарта General Electric для выявления дефектов) - в более поздних проектах. • Функция автоматического определения краёв изделия, при любом угле поворота плиты относительно ванны. • Адаптивная система, гарантирующая сканирование "без пропусков" при любой геометрической конфигурации планки с датчиками (датчики могут располагаться в планке не на одной линии, "светить" не совсем перпендикулярно и планка может быть повёрнута относительно "идеальной" позиции на некоторый угол). Система поддерживает несколько режимов работы - например, режим максимальной производительности (каждая точка должна быть проконтролирована хотя бы одним датчиком), режим максимальной достоверности контроля (каждая точка должна быть проконтролирована всеми датчиками). • Функция автоматического определения геометрической конфигурации планки - в более поздних проектах. • Функция автоматической разметки дефектов. • Сложная система анализа результатов сканирования и дополнительного контроля на установке. • Разграничение прав доступа пользователей. • Реализации чётко заданного алгоритма работы оператора, не допускающего отклонений от технологии в процессе работы и уменьшающего влияние "человеческого фактора". • Штатные и легко расширяемые средства визуальных администрирования и настройки системы (включая настройку конфигурационных файлов, хранящихся на компьютере под управлением ОСРВ QNX) - реализованы на C# с использованием технологии WPF (в более поздних проектах). • Собственная система для создания и редактирования шаблонов для распечатки отчётов. Средство визуального редактирования шаблонов отчётов. • Более поздние версии ПО под ОС QNX 6.3 Neutrino реализованы полностью по модульной архитектуре, что позволяет лёгкую замену отдельных модулей (например, при приобретении нового оборудования). Реализована собственная модель драйверов устройств и подсистем различных классов и API для связи с ними (например, возможна альтернативная реализация и интеграция в систему модуля, реализующего управление сбором информации, управления перемещением, связи с устройствами сбора данных и т.д.) • Более поздние версии ПО включают в себя средство ручного управления перемещением установки непосредственно с компьютера (пульт управления), позволяющее программирование передвижения через загрузку программ ЧПУ - реализована на C# с использованием WPF. • В более поздних версиях - собственный инсталлятор/деинсталлятор ПО с базовой настройкой конфигурационных файлов пользователем на этапе инсталляции - реализовано на C# с использованием WPF. Разработано на следующих языках программирования: C (QNX), Borland Delphi и C# (Windows). ************************************************************************************************************************* Система учёта времени, автоматизации работы операторов на установках ультразвукового контроля ************************************************************************************************************************* • Сложный алгоритм работы оператора и технических служб, включает в себя как технологические циклы контроля, так и работу по техническому обслуживанию, простои оборудования, сбойные ситуации и т.д. • Дерево технологических состояний и операций установки (операции могут быть "составными", т.е. внутри одной операции алгоритма работы может быть свой "вложенный" алгоритм и так далее) с различными вариантами перехода из одной операции в другую. Реализованы как "локальные" алгоритмы (шаги контроля отдельной плиты, контроль ряда плит в одной партии, контроль обязательных шагов, не связанных напрямую с ПО - заполнение документации, ожидание выгрузки-погрузки плит, и т.д), так и "глобальные" - полный технологический цикл в течении рабочей смены, учитывающий возможное возникновение нештатных ситуаций, пересменки, обязательные действия по настройке оборудования в начале рабочей смены и т.д. • Схема технологических и нештатных состояний не является "жёстко заданной", она хранится в СУБД PostgreSQL на сервере, и может быть изменена штатной административной утилитой, разработанной специально для данной системы. • Текущее технологическое состояние и набор состояний в целом отображается на экране в виде схемы. • Поддержка множества одновременно сосуществующих схем на одном сервере (система может быть использована для одновременной автоматизации работы персонала нескольких объектов). • Возможность работы без сетевого соединения с сервером (данные временно кешируются в локальной СУБД SQLite и пересылаются на сервер при возобновлении сетевой связи, необходимые для работы системы данные с сервера также могут хранится локально и обновляться по мере их изменения на сервере). • Сохранение и восстановление состояния системы при закрытии программы оператором (во время работы необязательно держать программу постоянно запущенной). • Полная интеграция с созданным мной ПО по ультразвуковому контролю (расширенная система заменяет поставляемый с установкой упрощённый вариант реализации алгоритма работы оператора и напрямую взаимодействует с составными частями ПО установки). • Средства для выборки и анализа протокола работы операторов и технических состояний установки, для создания компактной локальной копии данных за выбранный промежуток времени, формирования отчётов для обнаружения "узких мест", анализ рациональности работы операторов, причин простоев оборудования и т.д. Экспорт данных в табличный формат, позволяющий анализ с использованием средств Microsoft Excel. Анализ и составление отчётов учитывает "вложенность" алгоритмов и схем, сложные взаимосвязи между ними - реализовано на C# с использованием технологии WinForms. Разработано на следующих языках программирования: Borland Delphi и C#. ************************************************************************************************************************* Программа управления движением и мини-сканированием для лабораторной установки настройки датчиков ультразвукового контроля ************************************************************************************************************************* Разработано на Borland Delphi. ************************************************************************************************************************* Программа математического расчёта условий достоверности, создания и генерации отчётов контроля для установки контроля прочности деталей ************************************************************************************************************************* Разработано на Borland Delphi. ************************************************************************************************************************* Мини-CMS для создания информационных сайтов малого и среднего формата без обратной связи с пользователем - реализовано на технологии ASP.NET ************************************************************************************************************************* • Хранение информации в файловой системе в формате XML. • Административная утилита, позволяющая настройку, загрузку изображений и файлов, резервное копирование, создание "карты сайта" и полностью визуальное (без использования специализированной разметки - информация заполняется в режиме WYSIWYG, как, например, в Microsoft Word - но, естественно, значительно проще) информационное заполнение сайта. Реализована как клиентское приложение с использованием технологий WCF и WPF (на сервере для этого работает WCF-SOAP-служба). • Возможность загрузки через административную утилиту на локальный диск администратора полного архива содержимого сайта (включая файлы настройки, файлы содержимого, изображения и т.д.) в виде одного файла, и последующее восстановление состояния сайта из этого файла на сервере средствами административной утилиты. • Возможность размещения заказа через форму. Хранение на сервере списка заказов. Загрузка заказов через утилиту по протоколу WCF-SOAP. Автоматическое оповещение о поступлении новых заказов перечисленным лицам через электронную почту. • Ограничения: общий дизайн, шаблоны страниц и оформления не управляются через административную утилиту. Шаблоны необходимо загружать вручную через протокол FTP. Разработано на C# с использованием технологий XML/XSLT, ASP.NET, WCF и WPF. =========================================================================== Были также реализации следующих проектов в виде хобби (не использовались на практике и не все были доведены до релиза): =========================================================================== ************************************************************************************************************************* WEB-фреймворк ************************************************************************************************************************* • Компиляция html-разметки и серверных скриптов в бинарные dll-файлы. • Реализация как смешанной модели разметка/скрипты в одном файле, так и code-behind модели. • Автоматическое определение изменений в разметке или файлах скриптов и перекомпиляция "на лету". Поддержка зависимостей между файлами (перекомпиляция всех связанных между собой файлов с учётом зависимостей). • Использование в качестве скриптового языка Object Pascal (Borland Delphi). • Достаточно объёмный объёктно-ориентированный, расширяемый framework (реализация в виде объектов примитивных типов - boolean, integer и т.д., коллекций, деревьев, кортежей, массивов, в том числе ассоциативных, расширяемых классов "скриптового типа", объектов, связей с СУБД и т.д., средства, позволяющие обходиться без приведения типов - например, тип TInteger реализует как интерфейс IInteger, так и интерфейс IString, поэтому приведение типов сводится к использованию того или иного объектного интерфейса). • Собственный расширяемый язык разметки конфигурационных файлов, реализующий декларативное заполнение объектных свойств с учётом их типов. Сериализация и десериализация дерева объектов в текстовый формат на этом языке. "Компиляция" текстовых документов на данном языке в бинарный вид (для исключения шагов по их парсингу в дальнейшем). Автоматическое определение изменений конфигурационных файлов и перекомпиляция их в бинарный вид "на лету". Аннотация (комментарии) отдельных элементов с возможностью доступа к аннотациям со стороны ПО, сохранение аннотаций и в бинарном виде. • Очень высокая скорость работы (единственная ощутимая задержка - при перекомпиляции изменённых файлов), так как абсолютно исключена интерпретация скриптов. • Возможность создания серверных компонент для повторного использования. • Расширяемая подсистема парсинга, генерации по шаблону и кросс-трансляции текстовых файлов. В частности, файлы html-разметки с включением скриптов транслируются в исходный файл Object Pascal (который затем компилируются в dll-файл компилятором Object Pascal) посредством данного модуля. Подсистема полностью настраивается конфигурационным файлом (или их набором). • Поддержка тем оформления сайта. • Интеграция с сервером в качестве CGI-скрипта или расширения IIS. • CGI-скрипт или расширение IIS реализуют только промежуточную связь с системой (она реализована в виде постоянно запущенной на сервере программы и CGI "общается" с ней по протоколу TCP/IP). • Поддержка связей с СУБД, их (связей) кеширование для повторного использования, возможность кеширования результатов запросов к СУБД с отслеживанием зависимостей. • Поддержка "виртуальных" файловых систем. • Ограниченные возможности отладки скриптов и страниц (с использованием стандартных средств IDE Borland Delphi). Разработано на Borland Delphi, в настоящее время реализует полный функционал и вполне может быть использовано в рабочих проектах, но дальнейшее развитие прекращено по причине бессмысленности - для этого существует ASP .NET. Разработка велась исключительно с исследовательскими целями. ************************************************************************* Система для создания игр в жанре "текстовый квест" ************************************************************************* • Поддержка тем оформления. • Собственный скриптовый язык (интерпретируется без перевода в байт-код), в том числе с полным разбором и интерпретацией математических выражений, с поддержкой условий, циклов, событий, процедур и функций, локальных и глобальных переменных. • Хранение всех файлов данных и скриптов в одном файле данных (используется средство OLE Structured Storage). • IDE для разработки и отладки (поддерживает слежение за состоянием переменных, пошаговую отладку) текстовых квестов. Разработано на Borland Delphi, в настоящее время развитие прекращено по причине наличия более важных дел и желания переписать систему под Microsoft .NET. ************************************************************************* Средства для создания парсеров текстовых файлов ************************************************************************* • Реализовано с использованием некоторых принципов функционального программирования. • Использована идея многоступенчатых парсеров, строящих AST (abstract syntax tree) "от простого - к сложному" (парсеры могут быть выстроены "в цепочку", на потоковом входе одного из которых - потоковый выход другого). • Парсер носит модульную архитектуру - отдельные методы и классы парсинга могут быть просто подключены к системе как параметры конструктора. • Тестовый проект позволяет построить AST собственного исходного кода, а также исходных кодов библиотеки на языке C# в некоторой степени детализации. • Недостаток - относительно невысокая скорость работы (объясняется стремлением к универсальности, очень обширным использованием делегатов, "функций высшего порядка" с захватом переменных, итераторов, конечных автоматов и т.д.) Разработано на C#, в настоящее время развитие приостановлено по причине наличия более важных дел. Полнофункциональный веб-сайт, посвящённый программированию на Borland Delphi • Реализован как CGI для Apache на языке Object Pascal (Borland Delphi). • Наличие регистрации, форумов, новостей, средств компоновки страниц из различных файловых источников. Разработано в 2000 году на Borland Delphi, в настоящее время не функционирует и исходные тексты проекта потеряны.

Обо мне

Языки программирования: • C • Object Pascal (Borland Delphi) • C# Операционные системы: • MS-DOS • Windows • ОСРВ QNX 4.25 и QNX Neutrino 6.3 (в т.ч. написание драйверов к промышленному оборудованию под эти ОСРВ) Среды разработки: • Visual Studio 2008 • Borland Delphi • Eclipse Технологии, связанные с .NET: • XML (в т.ч. LINQ to XML), XSLT, XSD • WCF • WPF (в т.ч. создание собственных элементов управления) • WinForms • ASP .NET • TCP/IP (есть большой опыт создания распределённых систем) • ADO .NET (в т.ч. Entity Framework) Прочие технологии: • SQL (есть опыт работы с MS SQL Server, PostgreSQL, Sybase SQL Anywhere) • MS Office (в т.ч. взаимодействие .NET/Office 2007) • Adobe Photoshop • HTML/CSS • POSIX (опыт разработки приложений для POSIX-совместимых ОС) • Создание приложений с требованиями жёсткого реального времени. Прочие навыки: • Опыт написания технической документации и руководств пользователя. • Знаком с основными паттернами программирования. • Большой опыт разработки объектно-ориентированных приложений. • Большой опыт разработки распределённых систем (с использованием TCP/IP и HTTP/SOAP).

Высшее образование

2003
УГТУ-УПИ
УИТС, красный диплом

Знание языков

РусскийРодной


АнглийскийB2 — Средне-продвинутый


Гражданство, время в пути до работы

Гражданство: Россия

Разрешение на работу: Россия

Желательное время в пути до работы: Не имеет значения