Больше информации по резюме будет доступно после регистрации
ЗарегистрироватьсяКандидат
Мужчина, 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
УГТУ-УПИ
УИТС, красный диплом
Знание языков
Гражданство, время в пути до работы
Гражданство: Россия
Разрешение на работу: Россия
Желательное время в пути до работы: Не имеет значения