Читаете ли вы блог Хабр Карьеры? Если да — оцените, как мы справляемся. А если нет — расскажите, что читаете для развития карьеры. Пройти опрос (займет 5-7 минут)
Обо мне

Name:    Ashot Madatyan

E mail:                  ashotm71@gmail.com

Tel:      (+37498) 210 210, (+37498) 910 910

Address:               27 Komitas Ave., apt. 16, Yerevan 0012, Armenia

LinkedIn profile: https://www.linkedin.com/in/ashot-madatyan-6b21347/

Skype:                  ashot.madatyan

Viber:                    (+37498) 210 210
            
Summary:

  • 20+ years of professional experience in the Information Technology industry;
  • Rich experience in design and development of cross-platform solutions in a wide range of IT domains, business analysis, and requirements definition;
  • Solid background in OOP/OOA/OOD, Design Patterns, UML;
  • Strong skills in software architecture and development for the *nix\Windows platforms, C/C++ and Linux/Windows kernel programming, algorithmic problems and optimization;
  • Experience working with several DBMS and native SQL queries, their setup, optimization, and clustering;
  • Solid experience in design and development of network-related, distributed, high performance and high availability servers/ecosystems;
  • Solid experience in video and audio streaming protocols and diverse codecs;
  • Rich experience in leading and managing of result-oriented development teams.

Education:

Master degree in Economics, “Institute of National Economy”, Department of finance, accounting and statistics, Yerevan, Republic of Armenia, 1988-1993

Skills:

Programming and Markup Languages:

C, C++, SQL, VB, VBA, XML, JSON

Technologies and Frameworks:

COM, GDI, GDI+, STL, Boost, Boost.ASIO, VLC, FFmpeg, MFC, WinAPI, Network Programming(TCP/IP, UDP, unicast, multicast streams), CMake, GNU Make, Algorithm design, Asynchronous design patterns in C++, High-performance, high-availability, multithreaded asynchronous servers (Linux and Windows based), Linux device drivers and kernel modules design/programming, Linux USB host and peripheral controller drivers, USB stack architecture, Linux and Windows shell scripting (bash, python, batch scripting), Media streaming protocols, containers and codecs (RTSP, RTP, SIP, OTT, HLS, H.264, H.265, MPEG2-TS)

Databases:

MySQL, MS SQL Server

Unit Testing Tools:

GoogleTest

Development Environments:     

GCC, MS Visual Studio, Eclipse. KDevelop

Bug Tracking Systems:     

Jira, Bugzilla, Mantis

Version Control Systems:

Git, Subversion (SVN), CVS, Perforce

Work Experience:

Optym, (www.optym.com)

Software development manager                                                 2019 August – January 2020

IUNetworkc LLC, (www.iunetworks.am)

IPTV Core Services development team

lead/R&D Solution Architect                                                       2012 December – August 2019

Aragast Ben Web Technology

Senior R&D Engineer/Architect                                                    2012 June – 2012 December

Energize Global Services, (energizeglobal.com)

Group Manager / Senior R&D Engineer                                      2012 February – 2012 May

Hylink JSC

Senior R&D Engineer                                                                     2011 February – 2012 February

Synopsys Armenia SG, USB group, (www.synopsys.com)

R&D Engineer, Senior I                                                                  2005 September – 2011 February

Converse Bank CJSC, Software Developers department (www.conversebank.am)

Lead software engineer                                                                 2004 May – 2005 February

HPL Armenia (Subsidiary of HPL

Technologies Inc., US – now acquired by Synopsys)

Senior Software Engineer                                                              2002 Jan – 2004 February

State Automobile Inspection,

Vehicle Technical Checkup division

Head of S/W Solutions Division and IT                                        2000 October – 2002 January

Self employed

Freelance software architect and developer                               1996 – 2000

Recently Completed Projects:

IPTV Core services (High volume A/V transport stream capturing, indexing and streaming) - TV Catchup

Client:             Largest Telco in Armenia providing IPTV, Internet and mobile telephony (UCOM LLC)

Description:   A distributed unique system for capturing, indexing, storing and streaming Audio/Video high volume transport stream data to clients in the dedicated IPTV network. Each A/V multicast stream (each channel) consists of H.264 or H.265 video codec data multiplexed with one or more audio channels into TS (transport stream) packets. Most of the channels are 6-10 Mbps full HD A/V streams, and the TV Catchup ecosystem (dubbed CUPS) persistently receives, indexes, stores those streams in chunks of configurable durations. The main goal of the CUPS ecosystem is to service each client request for unicast streaming of specific programme using the RTSP protocol (RFC 2326). The streamers allow watching both normal speed and the so called trick-play mode streams, while allowing for fast-forward and rewind functionality in numerous speeds (4x, 8x, 16x, 32x, 64x). The initial requirement from the client was quite vague and weakly defined with the single intent to fully replace the existing h/w streamers based on Edgeware's solution (running on a tweaked Linux). Having done an extensive R&D of the domain, I suggested to replace all the existing streamer h/w from Edgeware with purely s/w product to eliminate any additional cost of vendor licenses, h/w and s/w limitations, etc. thus minimizing the overall IPTV cost of maintenance and allowing unlimited extensions to the customer base and services. Moreover, I suggested designing and implementing a product, which could be sold as is to any interested IPTV provider and solve not only this specific customer's problems. However unbelievable and impossible this idea was assumed by the customer, I have designed, prototyped and finally delivered the product into live, which currently hosts 100-120K concurrent users, with each month seeing 500-700 customer increase. The total unicast A/V traffic to the end users, compared to the Edgeware's product, has increased about 250%, totaling to about 120 Gbps at the peaks. The CUPS ecosystem is a highly modularized and portable (Linux and Windows) C++ product that runs on any stock Linux distribution. It boasts very flexible and highly configurable design, rich set of features and practically unlimited space for both vertical and horizontal dynamic scaling even in heterogeneous networks with different OS platforms. To achieve these challenging characteristics and features, an extensive R&D of the relevant protocols and the domain was done. Moreover, a series of unique self-designed and implemented algorithms were used to allow for concurrent real-time stream capturing, indexing, chunking, multilevel caching, storing and streaming of A/V data using multicore and multisocket nodes with the minimal possible overhead, delay and CPU and memory footprint. And one of the main advantages of the CUPS ecosystem is practically no third-party dependency, which could otherwise make the product owner liable to any kind of license fees.

                                               

Platform:              General purpose Linux (not tweaked), any Windows

Languages:           C, C++

Environments:    Boost, Boost.ASIO, TCP/IP, UDP, multicast and unicast, self-made indexable data persistence system, self-developed stream indexing, chunking, caching and storing algorithms

Position:               Solution architect, Product owner and Team Leader

Activities:

  • Research of the client's IPTV network and h/w, design of the protocols and the ecosystem architecture
  • Design of all the specific and unique algorithms for stream capturing, normal and trick-play indexing, chunking, multi-level caching and storing
  • End-to-end implementation of the ecosystem and daily maintenance
  • Bug fixing.
  • Daily communication with the client and the interested stakeholders, training and 7x24 L1 and L2 support

IPTV Core services, CRS (Central Recording Service)

Client:                         Largest Telco in Armenia providing IPTV, Internet and mobile telephony (UCOM LLC)

Description:               This is a high performance, high availability and standalone distributed system of Linux nodes for capturing, indexing, chunking and storing of multicast UDP A/V Transport streams. Being an integral part of the overall IPTV Core Ecosystem, this service could be used quite independently as soon as it is fed with any H.264 or H.265 Video codec containing multicast stream. The main goal of this service is to index, chunk and permanently store the incoming streams of channels (about 200 individual multicast full HD channels) in the distributed, fiber-optics attached large volume storages. This allows retrieving the stored A/V chunked data and its associated normal and trick play indices by RTSP catchup nodes (streamers). The service is dynamically configurable to allow specific channels content to be stored during the configured period of time. This is done by specifically designed chunk naming and hierarchy storage algorithms and protocols that produce the least overhead on the overall storage and chunks transportation over fiber-optics network. The service nodes are highly scalable and flexible to allow hot plugging any multicast stream accommodation or elimination, as well as system wide notification of the node and data availability. Self-healing and specifically designed failure notification protocols ensure failover and data loss prevention, as well as hot redundancy.

Languages:                 C++

Environments:          TCP/IP, UDP, multicast, general purpose Linux (not tweaked), Boost, Boost.ASIO, self-made indexable data persistence system, binary system-wide failover notification protocol

Position:                    Solution architect, Product owner and Team Leader

Activities:                           

  • Research of the client's storage and network stacks, design of the protocols and the ecosystem architecture;
  • End-to-end implementation of the ecosystem and daily maintenance;
  • Profiling, performance tuning;
  • Bug fixing;
  • Daily communication with the client and the interested stakeholders, training and 7x24 support;

TV Network Profiling System

Client:                         Largest telco in Armenia providing IPTV, Internet and mobile telephony (UCOM LLC)

Description:               A distributed system for testing dedicated TV network's errors, connection speed (control and data), path MTU and jitter immunity. The system enables identification of network characteristics and bottlenecks. The TV network is very sensitive to network errors, delays and jitter while carrying real-time high bandwidth audio/video streams for thousands of concurrent multicast and unicast clients. This distributed ecosystem consists of 3-4 multicore (32 to 56 CPU cores) network nodes running on general purpose (stock) Linux, with each node hosting both server and client side C and C++ high performance, multithreaded code.    The test results are aggregated on a configurable node and are available while being collected.

Languages:                 C, C++

Environments:            General purpose Linux (not tweaked), Boost, Boost.ASIO, self-made indexible data persistence system

Position:                      Solution architect, Product owner and Team Leader

Activities:                           

  • Research of the client's network, design of the protocols and the ecosystem architecture;
  • End-to-end implementation of the ecosystem and daily maintenance;
  • Profiling, performance tuning;
  • Bug fixing;
  • Daily communication with the client and the interested stakeholders, training and 7x24 support;

IPTV Content Statistics Service

Client:                         Largest Telco in Armenia providing IPTV, Internet and mobile telephony (UCOM LLC)

Description:               A standalone content watching tracking and statistics collection service. The main goal of this service is dynamic collection of statistics of IPTV Catchup content watchers, followed by statistical analysis and channel and content rating. The idea of this service was proposed by me to the client and proved to be one of the most indispensable assets for the customer’s TV channels and content rating and marketing department. The output of this pluggable service allows the customer to dynamically adjust to the users’ preferences in terms of most watched channels, content, date/time activities, and much more of statistical data. Admittedly, the IPTV service revenues increased and got more preferable. The service consists of several C++-based modules/services, among which are the pluggable stats collector, the dynamic console-based real time monitor of the statistics, the offline high-volume data analyzer with specifically designed highly concurrent, multithreaded and in-memory based algorithms for statistical analysis allowing either all-time and specific period queries, specific channels filtering and much more.

Languages:                 C++

Environments:          General purpose Linux (not tweaked), any Windows, Boost, Boost.ASIO, self-designed algorithms for mass statistical data analysis in multicore environments.

Position:                    Solution architect, Product owner and Team Leader

Activities:                           

  • Research of the content and its analysis, algorithm design, the ecosystem architecture;
  • End-to-end implementation of the ecosystem and daily maintenance;
  • Profiling, performance tuning;
  • Bug fixing;
  • Daily communication with the client and the interested stakeholders, training and 7x24 support;

OTT / HLS Live and VOD Catchup

Client:                         Largest Telco in Armenia providing IPTV, Internet and mobile telephony (UCOM LLC)

Description:               The main goal of this product is to have proprietary ecosystem that delivers both HLS/OTT live program catchup and the catchup of the static content of VOD’s to the subscriber user base. The product consists of the following unique, mainly C++ based high performance and high availability, scalable services and utilities:

  • - OTT streamer
  • - VOD streamer
  • - OTT live content adapter for HLS profiles
  • - Multithreaded, highly configurable VOD chunker and OTT profiles data generator
  • - In-house designed and implemented real world scenario simulator and service profiler

                                    This product line came to replace third party solution based on costly h/w+s/w solution, thus allowing painless scalability and extendibility. Moreover, this ecosystem solved some critical issues that the previous solution vendor was consistently failing to fix.

Languages:                 C++, ffmpeg, libavi

Environments:          Linux, Windows

Position:                     Solution architect, Product owner and Team Leader

Activities:            

  • Managing and leading the team
  • Requirements analysis;
  • Overall product’s architecture and functional design
  • Implementation of the core building block components and modules

SNPS UTE (Synopsys USB Test Environment)

Client:                         Synopsys, Sony, Broadcom, Qualcomm, Samsung, Imagination

Description:               This is a unique project, which was initially required by Sony – one of the Synopsys’s main customer, and which later on became a standalone product from Synopsys. Among other DesignWare IPs (Intellectual Property), Synopsys provides IP’s for both USB PCD (peripheral Controller Device) and HCD (Host Controller Device). Before agreeing to acquire the PCD and HCD IP from Synopsys, the customer (Sony initially) required all the reference h/w and their respective Linux drivers being compliant not only with USB IF requirements, but moreover, with their very strict and challenging internal standards. With Sony not providing any specification for their internal test tools, I created a specific USB-based protocol (CFI – Core Features interface) and designed and created the highly configurable and flexible UTE (USB test environment), and integrated them both. This allowed to run practically unlimited USB PCD and HCD test scenarios on the DUT (Device under Test) and identify bottlenecks and functional bugs that were not covered neither by Sony’s internal test tools, nor even by USB IF’s test suites. Eventually Sony acquired the UTE as a standalone product as the replacement of their existing test suite.

Languages:                 C, VBA for Excel

Environments:          Linux USB kernel development, embedded Linux development, FPGA programming, custom protocols design based on USB 2.0 and USB 3.0 specifications, H/W virtualization

Position:                     Senior R&D II, Product owner

Activities:            

  • Requirements analysis;
  • Customer communication
  • Architecture design
  • End to end implementation
  • PCD and HCD USB IF certification preparation