Hovsep Papoyan - CV

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Hovsep Papoyan | C++ Software Engineer

Location: Armenia, 0038, Yerevan, Halabyan St., 31 Building


Telephone: (+374) 77 252 492
Email: [email protected]
LinkedIn: www.linkedin.com/in/papoyanhovsep
GitHub: www.github.com/HovsepPapoyan

Professional Profile
Over 4+ years of professional and 5+ years of non-professional experience in software engineering. I am
passionate about technology, innovation and big challenging tasks on my to do list.
Competencies: C++, C++ Standard Library, Object-Oriented Programming, Generic Programming,
Concurrent Programming, Distributed Systems, Discrete and Continuous Mathematics.

Career Summary
JUN 2021 – SEP 2023 Software Engineer (Questrade Financial Group)
DEC 2020 – JAN 2021 Software Engineer (Mentor, A Siemens Business,
now: Siemens EDA (Siemens Digital Industries Software))
FEB 2020 – DEC 2020 Junior Software Engineer (Mentor, A Siemens Business,
now: Siemens EDA (Siemens Digital Industries Software))
APR 2019 – FEB 2020 Software Engineering Intern (Mentor, A Siemens Business,
now: Siemens EDA (Siemens Digital Industries Software))
SEP 2018 – JUN 2021 Junior Researcher ("Systematic Analysis" Research Laboratory (NPUA))

Technical Skills
Programming Languages C++11/14/17
Programming Paradigms Object-Oriented Programming, Generic Programming,Concurrent Programming
Debugging GDB, CGDB, LLDB, TVF, Microsoft Visual Studio Debugger
Compilers GNU Compiler Collection, Clang/LLVM, Microsoft Visual C++ Compiler
Databases MySQL, Microsoft SQL Server
Scripting Languages Bash, Tcls, Python, Perl, JS, TS
Libraries C++ Standard Library, Boost C++ Libraries, libcurl C Library,
Intel Threading Building Blocks (TBB) Library, Google Benchmark Library
Operating Systems Linux (CentOS, Red Hat), Windows
Cloud Computing GCP (Google Cloud Platform)
Google Sanitizers ASAN, LSAN, TSAN, UBSAN
Google Services/Systems Google Cloud Pub/Sub, Google Secret Manager
Data Representation Formats Google Protocol Buffers, JSON, XML
REST/gRPC Clients Postman, Kreya, Curl, Grpcurl
API Design gRPC, REST
Lexical Analysis Tools Lex, Flex
Grammar Parsing Tools Yacc, Bison
Frameworks gRPC, Qt
Build Automation GNU Make, CMake, MSBuild
IDEs Eclipse, Vim, Visual Studio, Visual Code
Version Control Git
Repository Managers GitLab, GitHub
Package-Management Conan
Issue Tracking Systems Jira
Others Data Structures and Algorithms, Design Patterns, Software Design Principles
Education & Qualifications
SEP 2018 – JUN 2021 PhD, Chair of Information Technologies and Automatization (NPUA)
SEP 2016 – JUN 2018 Master's Degree (Hons), Chair of Information Technologies and
Automatization (NPUA)
JUN 2011 – JUN 2013 Served in the Army of Republic of Armenia
SEP 2010 – JUN 2016 Bachelor's Degree (Hons), Chair of Information Technologies and
Automatization (NPUA)
SEP 2008 – MAY 2010 High School of NPUA
SEP 2000 – MAY 2008 School 122 after Alexander Blok

Software Engineering Experience


Questrade Financial Group (QTG Core Systems Engineering)
Projects: "IQManager" (GUI for Questrade agents (Qt)), "IQ" (servers (C++17)),
"mforders-updater" microservice (TypeScript, NestJS).
Individual Subprojects from Scratch
1. Integration of "gRPC" framework and "Google Protocol Buffers" into "IQ":
• POC of integration,
• Building related libraries and integrating into makefiles of "IQ",
• Automation of integration process (Bash),
• Development of "RequesterConfig" shared module, which responsible for parameter name creation at
compile time (for reading parameters from configs and creating "gRPC" related staff) (C++17).
2. Integration of "Google Cloud Pub/Sub" into "IQ":
• POC of integration,
• Building "pubsub.proto" and dependent proto files with "protoc", ordering generated C++ sources,
integrating into makefiles of "IQ",
• Automation of integration process (Bash),
• Acknowledgement (ack/nack) system development for "IQ" "Google Cloud Pub/Sub" message bus (C++17).
3. Integration of "Google Secret Manager" into "IQ":
• POC of integration,
• Building "secretmanager.proto" and dependent proto files with "protoc",
• Automation of integration process (Bash),
• Development of "SecretRetriever" shared module, which responsible for retrieving secrets from cloud and
storing in shared container (C++17, gRPC).
4. Development of "CurlRequester" shared module, which wraps "libcurl" C library. Module was used for
transferring data to Cloud (C++17, libcurl).
5. Development of
• "mforders-updater" microservice, which responsible for receiving mutual fund orders from client (via gRPC),
storing data in its own "MySQL" database, sending data to third-party (via REST API), receiving and
processing response and sending processed response back to the client,
• Client ("Back Office" server, "Mutual Fund Orders" domain), which responsible for retrieving and filtering
mutual fund order related data from "MSSQL" database, sending to "mforders-updater", receiving back
processed response and sending response to GUI (via dedicated service) (C++17),
• GUI, which responsible for choosing and sending mutual fund orders to "Back Office" server (via dedicated
service), receiving and showing response in appropriate GUI column (Qt).
Solution allows multiple clients to send multiple mutual fund orders simultaneously (sync issues solved at
database level in microservice)
6. Integration of "Salesforce":
• Sending data from the "Back Office" server ("Risk Communication" domain) to "Salesforce" (via REST API)
using the "CurlRequester" wrapper.
7. Integration of "Conan Package Manager":
• POC of integration,
• Creation of technical documentation for the integration of "Conan Package Manager".
Shared Projects
1. "Back Office" server and "IQManager":
• Maintenance, improvements, refactoring, redesigning, bug fixing, sanitizing, profiling (C++17),
• Owning "Mutual Fund Orders" and "Risk Communication" domains (C++17).
2. "IQGateway" server:
• Maintenance, improvements, refactoring, redesign, bug fixing, sanitizing, profiling (C++17),
• Redesigning and refactoring of "Publishers and Consumers" framework (C++17),
• Bug fixing in "Publishers and Consumers" framework (crashes, sync issues with database) (C++17).
3. "Alert" server:
• "Custom Alerts Publisher" (initial stage of design),
• "Smart Alerts Publisher" (initial stage of design).
4. "Server" framework:
• Bug fixing (leak detections with "Google Sanitizers" and fixing) (C++17),
• Optimizations by applying move semantics (C++17).
5. Complete codebase migration to new "RHEL" and new "GCC":
• Automation of Google libraries building process (Bash),
• Warning/error fixing for new "GCC".

Mentor, A Siemens Business, now: Siemens EDA (Siemens Digital Industries Software)
Projects: "Nitro-SoC", "Сalibre".
Individual Subprojects from Scratch
1. Implementation of "TEST_REPORT_STATISTICS", which measures running time and memory usage for some
"Nitro-SoC" commands (Tcl).
Shared Projects
1. Transition from custom containers to STL containers in "Verilog Reader" (done in 8 stages). At each stage, the
running time of the "read_verilog" command was measured using "TEST_REPORT_STATISTICS".
An ~20% improvement in running time was achieved (C++11).
2. The Verilog lexer has been completely rewritten and new test cases have been introduced (Lex).
3. The Verilog parser was completely rewritten, all ambiguities and conflicts were eliminated, new test cases were
introduced (Yacc).
4. "Verilog Reader" has been improved to detect new errors and warnings (Lex/Yacc).
5. "Verilog Reader" has been improved to recognize syntax and semantic errors (Lex/Yacc).
6. An attempt to replace the Verilog parser of "Nitro-SoC" with a third-party parser (C++11).
7. Proposal for improving the "Nitro-SoC" output writer module (generic programming) (C++11).
8. Experience with "Calibre Interactive", "Calibre RVE", "Calibre DesignREV", "SVRF", "TVF", "DRC" rule checks,
"DFM" rule checks.

Math Experience
1. Development of automated solutions for dynamic one-parameter matrix equations (dissertation work) (C++11).
2. Solutions of different types of matrix equations based on the corresponding spectral models based on
G.E. Pukhov’s differential transforms (dissertation work) (C++11).
3. Implementation of methods for solving "Silvester-type" matrix equations (dissertation work) (C++11).
4. Implementation of methods for solving "Riccati-type" matrix equations (dissertation work) (C++11).
5. The implementation and comparison of two-phase simplex and ellipsoid methods (thesis work) (C++11).
6. Comparative analysis of several methods for building characteristic polynomial of matrix (diploma work)
(C++11).
Technical Publications
1. S.H. Simonyan, H.S. Papoyan To The Solution of Dynamic One-Parametric Silvester-Type Matrix Equations
// Proceedings of NPUA: Information Technologies, Electronics, Radio Engineering.- Yerevan, Armenia, 2018.-
No 2. -P. 9-20
2. S.H. Simonyan, A.V. Melikyan, H.S. Papoyan, H.V. Gumroyan To The Solution of Dynamic One-Parametric
Riccati-Type Matrix Equations // Proceedings of NPUA: Information Technologies, Electronics, Radio
Engineering.- Yerevan, Armenia, 2019.- No 1. -P. 9-20

Soft Skills Languages Interests


• Detail-oriented • Armenian (native) • Programming
• Self-disciplined • English (intermediate) • Reading (technical books)
• Responsible • Russian (fluent) • Mathematics

You might also like