Software Engineer2017 - 2019Trinity Mobile Networks
Technologies: UDP, TCP, IPv6, IPv4, Datagram Transport Layer Security (DTLS), Transport Layer Security (TLS), OpenSSL, libpcap, Tcpdump, Linux, Point-to-Point Tunneling Protocol (PPTP), Unix, Sockets, REST, HTTP, JSON, RabbitMQ, AMQP, Boost.Asio, Boost, C, C++14, C++11, Asynchronous I/O
- 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: Linux, MacOS, Xcode, Clang, GCC, Valgrind, Multithreading, Object-oriented Design (OOD), Object-oriented Programming (OOP), Shell Scripting, CMake, Boost, Standard Template Library (STL), C++11
- 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: Sockets, Data Structures, Algorithms, Scripting, Makefile, Metaprogramming, Oracle Solaris, Valgrind, GCC, Regular Expressions, Multithreading, Object-oriented Design (OOD), Object-oriented Programming (OOP), Shell Scripting, ODBC, Perl, Boost, Standard Template Library (STL), C++, C
- 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: Grid Computing, Linux, MPI
- 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: QoS, Open Shortest Path First (OSPF), IP Routing, Cisco, BGP
- 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.