Sparik Hayrapetyan, Developer in Yerevan, Armenia
Sparik is available for hire
Hire Sparik

Sparik Hayrapetyan

Verified Expert  in Engineering

Software Developer

Location
Yerevan, Armenia
Toptal Member Since
July 5, 2021

Sparik is a software engineer who excels in developing autonomous systems, C++ libraries, and the intricacies of multi-threaded programming. He has in-depth knowledge of algorithms and data structures, computer architecture, operating systems, and compilers. Sparik won first place in the National Capture The Flag competition and a bronze medal at the International Olympiad in Informatics (IOI).

Portfolio

Confidential
C++, Boost.Asio, C++17, Conan, CMake, Linux, GStreamer...
ZERØ
Algorithms, Machine Learning, GPT, Natural Language Processing (NLP)...
Createch
RabbitMQ, Redis, Node.js, JavaScript, TypeScript, NGINX, MongoDB, Java...

Experience

Availability

Part-time

Preferred Environment

C++, Linux, CMake, Conan, Git

The most amazing...

...tool I've developed is an RPC library capable of reliable communication in a noisy and unreliable network.

Work Experience

Senior Software Engineer

2018 - PRESENT
Confidential
  • Wrote, tested, and deployed critical software for autonomous systems running in constrained environments.
  • Wrote a C++17 RPC server and client library supporting both TCP and UDP protocols. The library was subsequently used in a critical distributed system with an unreliable network.
  • Developed, tested, and debugged GStreamer pipelines for low-latency video processing and streaming with metadata over a low-bandwidth RF network. Implemented a C++ wrapper for a subset of GStreamer library.
  • Advocated for best practices in both code and build process. Transitioned the codebase to using Conan for managing dependencies. Assisted the set up of a CI/CD pipeline.
  • Used error correcting codes to develop a protocol for fixed-overhead reliable data transmission over an unreliable network (~15-40% packet loss).
Technologies: C++, Boost.Asio, C++17, Conan, CMake, Linux, GStreamer, Template Metaprogramming, Georeferencing, Continuous Integration (CI), Standard Template Library (STL), Bash, Python, POSIX, OpenCV, Distributed Systems, Raspberry Pi, Raspberry Pi 3 GPIO, C, Libusb, Concurrent Programming, GDB, DevOps, GCC, Clang, Docker, Unmanned Aerial Vehicles (UAV), Video Codecs

Software Engineer

2017 - 2018
ZERØ
  • Designed machine learning algorithms for email classification and email leak prevention.
  • Implemented machine learning algorithms in Python and oversaw the integration of final models into the mobile application.
  • Implemented a small Python package for reading the Enron email dataset easily. (https://pypi.org/project/enron_reader/).
Technologies: Algorithms, Machine Learning, Natural Language Processing (NLP), Generative Pre-trained Transformers (GPT), GPT, Python, SQLite

Software Engineer

2015 - 2017
Createch
  • Developed a highly-available service that consumed a real-time stream of data from RabbitMQ queues and wrote the data to MongoDB in a format suited for further analysis.
  • Developed a REST service with Node.js for consuming data from the database and generating reports and various statistics.
  • Developed REST services responsible for sending emails and SMS messages to users about events.
  • Developed a REST service for user authentication including social login.
Technologies: RabbitMQ, Redis, Node.js, JavaScript, TypeScript, NGINX, MongoDB, Java, Concurrent Programming, Java Concurrency, JSON Web Tokens (JWT), Twilio API

Junior Software Engineer

2014 - 2015
arloopa
  • Developed augmented reality games with C++ targeting the Microsoft Kinect platform. (demo for initial version: https://www.youtube.com/watch?v=euBnBpLpmcs).
  • Implemented Computer Vision algorithms for detecting objects that were used in augmented reality applications.
  • Communicated with clients to understand their needs and deliver best results in a short time.
Technologies: C++, Augmented Reality (AR), Computer Vision, Image Processing

Bicycle-sharing System Back end

https://github.com/sparik/Hetso
As part of a university course project, I implemented the back end of a prototype bicycle-sharing system. The API has concepts of bicycles, stations, rides, and users with different roles and permissions. I used the Express Node.js framework for REST API and MongoDB for data storage.

Breaksub

https://github.com/sparik/breaksub
I used Python to implement a probabilistic method for breaking monoalphabetic substitution ciphers. Given the cipher text, this method works by sampling ciphers using the Metropolis-Hastings algorithm for a given number of iterations and estimating the "fitness" of plaintext when decoded with the sampled cipher.

Languages

C++, C++17, Python, C, JavaScript, Python 3, Java, Bash, TypeScript

Libraries/APIs

Standard Template Library (STL), Node.js, POSIX, OpenCV, Libusb, Twilio API

Tools

CMake, Conan, GCC, Git, Java Concurrency, NGINX, GDB, RabbitMQ

Other

Algorithms, Data Structures, Computer Science, Library Architecture, Boost.Asio, Unmanned Aerial Vehicles (UAV), Debugging, Low-level Programming, Clang, Network Protocols, Machine Learning, Web Scraping, Video Codecs, Cloud Services, Georeferencing, Vulnerability Identification, Distributed Systems, Optimization, Information Security, Natural Language Processing (NLP), Augmented Reality (AR), Computer Vision, Image Processing, Cryptography, Markov Chain Monte Carlo (MCMC) Algorithms, GPT, Generative Pre-trained Transformers (GPT)

Frameworks

GStreamer, Express.js, JSON Web Tokens (JWT)

Paradigms

REST, Concurrent Programming, Template Metaprogramming, DevOps, Continuous Integration (CI)

Platforms

Linux, Docker, Raspberry Pi, Raspberry Pi 3 GPIO

Storage

MongoDB, PostgreSQL, SQLite, Redis

2014 - 2018

Bachelor's Degree in Computer Science

American University of Armenia - Yerevan, Armenia

APRIL 2018 - PRESENT

Google Hashcode Finalist (31st place)

Google

APRIL 2017 - PRESENT

Google Hashcode Finalist (21st place)

Google

FEBRUARY 2017 - PRESENT

First Place in National Capture The Flag Competition

CTFEVN

JULY 2014 - PRESENT

Bronze Medal

International Olympiad in Informatics (IOI)

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring