Software Engineer2017 - 2019Trinity Mobile Networks
Technologies: Asynchronous I/O, C++11/14, C, Boost, Boost.Asio, AMQP, RabbitMQ, JSON, HTTP, REST, sockets, Unix domain sockets, L2/L3 tunnels, Linux tun/tap interfaces, tcpdump/libpcap, OpenSSL, TLS, DTLS, IPv4/IPv6 and TCP/UDP packet crafting
- Built, with the platform team, a C++ software IP gateway for in-house L3 multihoming, on top of the packet processing core.
- Implemented client connection and session management in the IP gateway, with management planes involving AMQP and HTTP (REST).
- Implemented stateless IPv4-IPv6 traffic conversion and forwarding.
- Developed Boost.Asio wrappers for: Linux tun/tap interfaces, third-party C++ RabbitMQ client library, libpcap capture interfaces, message-based encryption sessions (using DTLS implementation by OpenSSL).
- Maintained CI/CD build automation scripts of the IP gateway.
Software Engineer2016 - 2017Blockchain R&D Hub Armenia
Technologies: C++11, STL, Boost, CMake, Shell Scripting, OOP, OOD, Multithreading, Valgrind, GCC, Clang, Xcode, macOS, Linux
- Developed code for the core as well as ongoing projects involving a DECENT blockchain content distribution platform.
- Integrated third-party libraries into the build process, and made them available for use by the core code of DECENT.
- Configured and maintained continuous integration environment for the project.
Software Engineer2010 - 2016OMD LLC (a wholly owned subsidiary of OneMarketData)
Technologies: C, C++, STL, Boost, Advanced Metaprogramming, Code Optimization, Perl, ODBC, Shell Scripting, Makefile Scripting, OOP, OOD, Multithreading, Lockless Algorithms and Data Structures, Regular Expressions, Network Sockets, GCC, Valgrind, Oracle Solaris
- Designed and implemented a fault tolerance algorithm and module for smart patching of multiple inbound potentially incomplete or corrupted tick data streams.
- Designed, implemented, and applied techniques and tools for preserving the states of big stateful processes.
- Implemented non-intrusive template-based generic C++ serialization library aimed at saving/loading the states of executables into files.
- Implemented persistent allocators on memory-mapped files that allow bringing back stopped stateful executables to their last states.
- Implemented feed parsers/collectors for a number of market data vendors using their APIs.
- Implemented a feed handler back-end layer of automatic trading module.
- Implemented an ODBCv3 driver for OneTick solution.
- Applied parallelization on stream processing routines using lockless algorithms and data structures.
- Ported code to various platforms and compilers; including Mac OS X, Linux, latest versions of GCC compiler, SPARC, POWER, and x86 architectures.
- Prepared third-party libraries and tools for integration and use with OneTick, including non-trivial portable GCC setups, Boost, and more.
Junior Researcher2010 - 2011Computer Modeling Lab, Institute of Molecular Biology of Armenia
Technologies: MPI, Linux, Rosetta, GROMACS, Grid Computing
- Maintained a Beowulf-style computer cluster.
- Setup and ran molecular dynamics simulations on the cluster and local grid computing facilities.
- Deployed dedicated molecular dynamics simulations software.
- Managed the access to computational resources.
Network Engineer2006 - 2008FiberNet Communication LLC (acquired by ADC, Armenian Datacom Company CJSC)
Technologies: IP routing, BGP, ISIS, OSPF, Cisco IOS, QoS
- Designed, implemented, and maintained the architecture and the topology of the carrier network with %99.99 uptime requirements.
- Configured and maintained the inter-domain and core network routing infrastructure.
- Designed the technical rules of connections between the carrier network and last-mile ISPs/individual clients, and maintained the quality of those connections.