Nikolay Martynov`s personal profile

About me

Начинал с C++. Как водится, был и PHP, и Python. Последние 16 лет "инвестировал" в экосистему Java (но и задач на C++ тоже хватало). Вел массовую разработку корпоративного софта от гос. органов России до операторов связи в США. Полный цикл разработки решений от сбора требований до сопровождения продуктов. Имею опыт индивидуальной разработки, работы в команде и опыт технического руководства командой. Тяготею к lean, agile, TDD.

I’ve started with C++ but, as it often happened during those times, I’ve had my share of PHP and Python. For the last 16 years, I’ve been heavily "investing" in the Java ecosystem (while still having enough C++ tasks). I was involved in mass-producing enterprise software for customers varying from the Russian government to mobile operators in the USA. I had experienced a full cycle from requirements discovery to customer support. This experience covers individual development, working within a team and taking technical leadership to bring team to success. I find lead, agile and TDD to bring positive results quite often.

Articles, posts and events

Experience & career events

Hewlett Packard Enterprise

Менеджер по разработке программного обеспечения (разные должности с мая 2009 по июль 2022, больше 13 лет)

Полный цикл разработки и поддержки интеграционных решений в сфере систем эксплуатационной поддержки (Operations Support Systems) для операторов связи по всему миру (единоличное ведение всего проекта; в составе команды разработчиков; техническое руководство командой разработчиков):

  • опрос заказчика, выяснение требований

  • анализ имеющейся документации

  • проработка и написание предложения (включая анализ реализуемости, трудоемкости и целесообразности)

  • разработка технического решения (дизайн, архитектура)

  • разработка плана проекта (разбиение на задачи, нормирование по трудоемкости, учет зависимостей, учет параллелизации на нескольких разработчиков)

  • постановка, детализация и приемка задач

  • написание кода

  • рецензирование и оптимизация кода

  • написание модульных тестов

  • написание автоматизированных системных тестов (установочные, функциональные, нагрузочные, регрессионные, на совместимость)

  • написание пользовательской документации

  • обучение персонала заказчиков

  • сопровождение, анализ сложных проблем, исправление дефектов, реализация улучшений, модернизация решения

Поиск, выбор, разработка, установка, настройка и поддержка инфраструктуры, используемой в технологических процессах:

  • инструментарий контроля версий, инструментарий сборки, инструментарий тестирования, CI, хранение артефактов

  • технологический стек и набор библиотек

  • внутренние технологические инструкции

  • внутренние обучающие материалы, внешние материалы для внутреннего обучения

  • шаблоны

  • инструментарий управления задачами и учета времени

  • ферма железных и виртуальных машин в различной аппаратно-программной конфигурации

Поиск и реализация технических и организационных решений для выполнения стратегий и политик вышестоящего руководства и большой корпорации:

  • аудит и безопасность внутренней инфраструктуры и продуктов

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

  • создание продуктов по новым направлениям

  • соответствие индустриальным стандартам (3GPP, TMF, ITU-T, ONAP)

  • юридические и экономические особенности использования библиотек с открытым кодом

Ключевые технологии и методологии: Groovy, Java, C++, Bash/POSIX shell, Asciidoctor, Gradle, Maven, Autoconf/Automake, JSON, XML, XSLT, XSD, REST, SOAP, WSDL, JMS, ActiveMQ, Kafka, SNMP, plain TCP, Docker, Spring, Camel, Apache commons, CXF, Spock, Boost, Poco, Hibernate, Derby, Linux (RHEL), HP-UX, Jenkins, Nexus, GitHub, Subversion, Jira, Wekan, Titra, Scrum, Kanban, Kaizen, WORST, SAFe, TDD

Рекомендательное письмо HPE без телефона

Different positions since May 2009 up to July 2022, more than 13 years

  • Technical Lead (August 2015 - July 2022, almost 7 years)

    Defining and implementing technology strategy in a subdivision working in the field of integration solutions for operations support systems primarily utilized by communication service providers. The goal is to make sure that business and management expectations are met by:

    • Maintaining and improving teams motivation and productivity using Kaizen and WORST. Examples are use of agile development methodologies like SAFe and highly visible Kanban radiators, self-managed cross-functional teams, collective code, failure and success ownership, automatization of development processes.

    • Developing or helping to develop solution and system architecture following feasibility and cost analysis in pre-sale support. This also includes design of particular application or subsystem both alone and just helping respective application architect. Results are system decomposition, more precise workload estimation, interfaces definition, selection of technologies to be applied, high level description of subsystems and algorithms to be coded, list of particular engineering tasks to be finished.

    • Helping teams to resolve technological issues. Examples include suggestion of not so well-known language and tool features, alternate implementations, algorithms and tools. Sometimes an obstacle is removed by understanding and accepting a trade-off, a change in this or that characteristic of the system or part of the system.

    • Developing technologically complex subsystems starting with interface definition (Javadoc); sometimes utilizing test-driven development (TDD); coding in technologies like Java, Groovy, C++, Spring, Camel, Web services, XSLT; unit testing including mocking; developing automated functional and load tests in Shell, Perl, Groovy. Target platforms are mostly Unix flavors like HP-UX and Linux.

    • Troubleshooting and resolving escalated support cases both by helping support teams analyze available information and sometimes by doing remote live production system debug.

  • Technology Consultant Expert, July 2012 - August 2015 (3 years 2 months)

    • As an application architect, I’m responsible for gathering requirements from customers and business stakeholders, mixing this together with constraints at hand and coming up with the solution that could be delivered as close as possible to expectations of key stakeholders within given time frame and budget. Additionally, I’m responsible for supporting sale teams and solution architects in aspects related to my area of expertise. I specialize in mediation software for OSS domain: integrating together products from HP and other systems that customers might have. I’m also responsible for supporting delivery teams as a Java and application integration technology expert.

    • As a project technical lead, I’m responsible for the technical aspects of the delivery: breakdown of requirements and large feature requests into tasks, workload estimation and planning aid, development of design and test strategy, ensuring completeness of task execution and target quality level of result, solving hard technical problems and finding workarounds for obstacles that can’t be completely removed, defining engineering practices and infrastructure that should be put in place for best result. In this role I’m responsible for several versions of HP OSS Open Mediation.

    • As an application developer, I work on unit tests and automated functional tests; maintain continuous integration infrastructure and build/test environment; write code, technical and user documentation; investigate defect reports and maintain products. Primary technology is Java but numerous other technologies are also essential part. These include Groovy, C++, Perl, UNIX shell (POSIX, HP-UX, Linux), XML/XSD/XSLT, Spring Framework, Apache Commons/Camel/ActiveMQ/CXF, Jenkins/Nexus.

    • As a consultant, I’m responsible for delivering trainings and providing consulting services related to development of integration solutions.

    • As a member of CTO and technology SPOC I’m responsible for implementing technology strategy in delivery center.

  • Technology Consultant (May 2009 - July 2012, 3 years 3 months)

    • Gathering and analysis of requirements from customers, development of solution architecture and design, workload estimation and aid in project planning, products update and creation including development of automated testing and documentation, solution delivery and customer consulting.

    • Using broad range of technologies to develop solutions for Communications, Media and Entertainment industry targeting multiple hardware and software platforms.

Budgeting and Financial Technologies

Бюджетные и финансовые технологии

Ведущий программист, октябрь 2007 - март 2009, 1 год 6 месяцев

  • Доработка серверной части проприетарной платформы

  • Прототипирование и разработка нового поколения серверной части

  • Дизайн и реализация нового поколения клиентской части платформы (графический интерфейс, толстый клиент)

  • Разработка бизнес приложений на этой платформе (анализ сценариев использования, оценка трудоемкости, написание кода, дизайн форм, проектирование базы данных, модульное тестирование, автоматизированное системное тестирование, написание встроенной и отдельно поставляемой документации пользователя)

Ключевые технологии и методологии: Java, Python, Swing, Jasper Reports, Apache Commons, Maven, Ant, JDBC, Firebird, Liquibase, Jenkins, MarathonITE, Scrum, XP

  • Senior developer (October 2007 - March 2009, 1 year 6 months)

    • Refinement of current proprietary server platform (Java); prototyping next step server platform (Java, ejb3, JBoss); design and implementation of client platform (Rich Client Application) (Java, swing); development of business application (Java, Firebird); use cases review, estimation of time to develop.

    • Developed and introduced into commercial operation system for automated control and management of municipal property.

Federal Institute of Industrial Property

Федеральный институт промышленной собственности (структура Роспатента)

Инженер, июль 2006 - октябрь 2007, 1 год 4 месяца

  • Анализ и автоматизация внутренних технологических процессов связанных с обработкой заявок на патенты и товарные знаки (разработка, документирование, обучение операторов, сопровождение)

  • Разработка программного комплекса учета результатов НИОКР, участие в выездных комиссиях по контролю деятельности научных учреждений страны

  • Приёмка работ подрядчиков

Ключевые технологии и методологии: Java, Swing, JDBC, Derby, ЕСПД

  • Engineer (July 2006 - October 2007, 1 year 4 months)

    • Analyzing technological processes; developing software for jobs automation (Java, swing, derby); examining works performed by contractors; maintaining software and hardware systems used in technological processes; developing control and accounting system (proprietary platform).

    • Developed and introduced into commercial operation software complex for jobs automation. Developed and introduced into commercial operation software for accounting results of monitoring and oversight of results of research activities.

      Authorship certificate for software for accounting results of monitoring and oversight of results of research activities

Intersoft Lab

Интерсофт Лаб

Веб-программист, совместительство, январь 2005 - май 2006, 1 год 5 месяцев

  • Доработка движка web портала

  • Адаптирование и загрузка содержимого

  • Администрирование web серверов

  • Анализ и обеспечение информационной безопасности

  • Разработка сопутствующего инструментария для отдела маркетинга

Ключевые технологии: Python, MySQL, HTML, CSS, Bash, Linux (Mandriva), HTTPD, ProFTPD, Snort, Tripwire, Metasploit, Nmap, NIST NVD, Secunia

  • Web developer, part time (January 2005 - May 2006, 1 year 5 months)

    • Improving web portal engine (python, MySQL); adapting and deploying content to websites (HTML, CSS, Bash); administrating web servers (mandriva linux, httpd, mysqld, proftpd); analyzing and preventing security threats (nvd nist/secunia, snort, tripwire); developing accompanying software (bash, python).

Ambiz Inc

Амбиз

Стажёр, совместительство, октябрь 2004 - октябрь 2005, 1 год 1 месяц

  • Развитие и сопровождение движка web сайта с каталогом продукции

  • Автоматизация технологических процессов (например, учет и запись звонков между клиентами и сотрудниками отдела продаж)

  • Автоматизированное развертывание рабочих мест, поддержка пользователей

Ключевые технологии: PHP, C++, Scheme, HTML, MySQL, WBAT, Bash, Linux (Gentoo)

  • Programmer, part time (October 2004 - October 2005, 1 year 1 month)

    • Developing website (php, MySQL); developing software for business process automation (bash, C++, wbat); administrating workstations (windows, gentoo linux); user support.

    • Developed and introduced into commercial operation web based catalog of products. Developed and introduced into commercial operation software for recording telephone conversations with customers.

State Educational Institution School 489

Школа 489

Учитель ИВТ, совместительство, сентябрь 2003 - июль 2004, 11 месяцев

  • Преподавание информатики, программирования и основ микроэлектроники в старших математических классах в школе при МЭИ

  • Information and computer technology teacher, part time (September 2003 - July 2004, 11 months)

    • Urgently hired to substitute regular teacher that has left the school. I was responsible for teaching 8th class students the basics of computer science including computer structure and basics of microelectronics, number systems and arithmetic coding, algorithms and programming languages.

Intron Plus Ltd

Интрон Плюс

Стажёр, совместительство, сентябрь 2002 - декабрь 2003, 1 год 4 месяца

  • Участие в разработке подсистемы приема, подготовки, классификации и хранения данных для программно-аппаратного комплекса снаряда-дефектоскопа для внутритрубной диагностики

Ключевые технологии: С++, Linux (Alt)

  • Junior Programmer, part time (September 2002 - December 2003, 1 year 4 months)

    • Developing subsystem for data input, clustering and storage (C++).

Moscow Power Engineering Institute (Technical University)

Московский Энергетический Институт (технический университет)

Лаборант-стажёр, совместительство, сентябрь 2001 - август 2002, 1 год

  • Разработан и введен в эксплуатацию программный комплекс учета и контроля персонифицированного потребления студентами и преподавателями расходных материалов при печати (количество тонера, количество бумаги)

Ключевые технологии: C++, Bash, Linux (Alt)

  • Laboratory assistant, part time (September 2001 - August 2002, 1 year)

    • Developing software (C++, bash, alt linux).

    • Developed and introduced into commercial operation software complex "Print server", providing control and accounting for consumption of paper and ink in multi-user environment.

Awards & certifications & courses & education

  • LFD259: Kubernetes for Developers

    • February 2022

    • Earners of the LFD259: Kubernetes for Developers badge can containerize, host, deploy, and configure an application in a multi-node cluster. They can also define application resources and use core primitives to build, monitor and troubleshoot scalable applications in Kubernetes using a simple Python script. These candidates have experience working with network plugins, security and cloud storage, and understand the many features needed to deploy an application in a production environment.

      lfd259 2022
  • LFD254: Containers for Developers and Quality Assurance

    • October 2021

    • Earners of the LFD254: Containers for Developers and Quality Assurance badge understand the open container ecosystem and know how to run, operate and troubleshoot containers. They build container images and use tools such as Buildah, Podman and Skopeo. They know the basics of container networking and different storage concepts. They also know how to build and deploy a microservices stack with Docker Compose and how to deploy containers in production. They are familiar with Kubernetes and Tekton.

      lfd254 2021
  • LFC191: Open Source Licensing Basics for Software Developers

    • September 2021

    • Earners of the LFC191: Open Source Licensing Basics for Software Developers badge possess a good working knowledge of open source licensing and compliance. They can distinguish the different types of licenses and permissions, and are able to create file notices with copyrights and licenses.

      lfc191 2021
  • Kubernetes CKS 2021 Complete Course - Theory - Practice

    • July 2021

    • What you’ll learn: Complete CKS preparation, CKS full Theory and Practice Kubernetes Security Concepts Think from a hackers perspective Deep technical insight into Kubernetes

      cks 2021
  • Arctic Code Vault Contributor

  • HP Applications and Business Services Leading the Way Rock Star

    • July 2013

    • Silver winner in category "Highly capable & innovative"

      2013 hp silver rock star small
  • Agile Project Management: P&G Certified Scrum Master

    • August 2012

    • Procter & Gamble for Hewlett-Packard

      2012 08 29 pg certified scrum master
  • JB439: Red Hat JBoss Fuse with Red Hat JBoss A-MQ and Camel

    • October 2012

    • Red Hat® JBoss® Fuse Rapid Track (JB439) is a 5-day course that gives Java™ developers, architects, and Red Hat JBoss Fuse administrators an understanding of Red Hat JBoss Fuse, Red Hat JBoss A-MQ (Java Messaging Service broker), and Apache Camel.

  • Sun Certified Programmer for the Java 2 Platform 1.4

    • August 2007

    • Prometric

  • Moscow Power Engineering Institute (Technical University)

    • 2000 - 2006

    • Master of Engineering (M.Eng.)

    • Information Technology

    • Studied engineering and nondestructive testing specializing in usage of neural networks for analysis of data coming from magnetic and eddy current testers.

      • Использование специальных методов обучения в нейросетевом классификаторе дефектов (Публикация для журнала)

      • Использование объектно-ориентированного подхода при проектировании нейросетевого классификатора дефектов (Публикация для журнала)

      • Применение нейронных сетей для анализа дефектов (Магистерская диссертация) Презентация Пояснительная записка

        В работе производится анализ методики, позволяющей отстроиться от влияния изменения толщины стенки трубы и режима намагничивания при проведении классификации и определении параметров дефектов; методик автоматической настройки нейронных сетей; методик, позволяющих улучшить качество обучения. Продемонстрировано применение передовых подходов к разработке программных систем. Рассмотрено строение программного комплекса, реализующего данные подходы и методики для решения задачи определения класса дефекта и его параметров.

      • Определение типа и параметров дефектов труб нефте- и газопроводов с использованием нейронной сети типа многослойный персептрон (Бакалаврская выпускная работа) Презентация Пояснительная записка

        В работе исследуется возможность и особенности применения нейронной сети типа многослойный персептрон для определения типа дефектов труб нефте- и газопроводов по вектору признаков и определения их параметров. Исследованы особенности применения совмещенной (одна нейронная сеть) и раздельной (разные нейронные сети используются для определения класса и подкласса) схем классификации. В работе даны рекомендации по выбору количества скрытых слоев и нейронов в них. Исследована возможность обучения сети на зашумленных модельных данных и данных, полученных от тестовой трубы. Оценена возможность применения специальных методов ускорения процесса обучения и улучшения способности к обобщению, таких как алгоритмы RPROP и SARPROP, а также ранняя остановка процесса обучения.

      • Применение нейронных сетей для классификации и параметризации дефектов труб парогенератора (Курсовая работа) Презентация Пояснительная записка

        Парогенераторы являются ответственными изделиями так как являются оборудованием, применяемым на атомных электростанциях. Очевидно, что критически важно надежно выявлять дефекты трубок парогенератора. Более того, необходимо определять характер обнаруженного дефекта, его местоположение (внутренняя или внешняя поверхность трубки) и параметры. Важнейшими параметрами дефекта являются его глубина и ширина. Контроль трубок парогенератора производится вихретоковым методом. Сигнал с датчика передается в компьютер, где подвергается обработке – фильтрации и кластеризации. Далее вычисляются признаки дефектов:

        • Амплитуда

        • Фаза

        • Размах

        • Энергия

        • другие.

        Полученные признаки подвергаются дальнейшей обработке с целью определения типа дефекта и его параметров:

        • глубина

        • ширина

        • угол.

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

Skills

In order of peers recognition per LinkedIn:

  • Java

  • Software Development

  • Process Improvement

  • Design Patterns

  • Unix Shell Scripting

  • Team Leadership

  • Linux

  • Unix

  • HP-UX

  • Telecommunications

  • C++

  • Integration

  • Solution Architecture

  • Unit Testing

  • System Testing

  • Functional Testing

  • Load Testing

  • XML

  • XSD

  • XSLT

  • Perl

  • Kaizen

  • Agile Application Development

  • Scrum

  • Kanban

  • EIP

  • System Architecture

  • Software Design

  • Groovy

  • Swing

  • POSIX

  • OpenStack

  • Remote Troubleshooting

  • Technical Support

  • Automated Software Testing

  • Mock

  • System Integration Testing

  • Technical Hiring

  • Knowledge Management

  • Bash